diff options
| author | Bastian Kauschke <bastian_kauschke@hotmail.de> | 2020-07-28 16:18:11 +0200 |
|---|---|---|
| committer | Bastian Kauschke <bastian_kauschke@hotmail.de> | 2020-08-05 18:30:37 +0200 |
| commit | 188bbf840dd858edb929459bd3536219fa062077 (patch) | |
| tree | 112d1de6447da00075df2050c28b8e0490188100 /src/test | |
| parent | 289e5fca7ecdb03db97be9d89ae908f253a3f263 (diff) | |
| download | rust-188bbf840dd858edb929459bd3536219fa062077.tar.gz rust-188bbf840dd858edb929459bd3536219fa062077.zip | |
forbid complex types for generic parameters
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/const-generics/min_const_generics/complex-types.rs | 18 | ||||
| -rw-r--r-- | src/test/ui/const-generics/min_const_generics/complex-types.stderr | 34 |
2 files changed, 52 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/min_const_generics/complex-types.rs b/src/test/ui/const-generics/min_const_generics/complex-types.rs new file mode 100644 index 00000000000..a396fa83aa6 --- /dev/null +++ b/src/test/ui/const-generics/min_const_generics/complex-types.rs @@ -0,0 +1,18 @@ +#![feature(min_const_generics)] + +struct Foo<const N: [u8; 0]>; +//~^ ERROR using `[u8; 0]` as const generic parameters is forbidden + +struct Bar<const N: ()>; +//~^ ERROR using `()` as const generic parameters is forbidden + +#[derive(PartialEq, Eq)] +struct No; + +struct Fez<const N: No>; +//~^ ERROR using `No` as const generic parameters is forbidden + +struct Faz<const N: &'static u8>; +//~^ ERROR using `&'static u8` as const generic parameters is forbidden + +fn main() {} diff --git a/src/test/ui/const-generics/min_const_generics/complex-types.stderr b/src/test/ui/const-generics/min_const_generics/complex-types.stderr new file mode 100644 index 00000000000..65c7aec36d6 --- /dev/null +++ b/src/test/ui/const-generics/min_const_generics/complex-types.stderr @@ -0,0 +1,34 @@ +error: using `[u8; 0]` as const generic parameters is forbidden + --> $DIR/complex-types.rs:3:21 + | +LL | struct Foo<const N: [u8; 0]>; + | ^^^^^^^ + | + = note: the only supported types are integers, `bool` and `char` + +error: using `()` as const generic parameters is forbidden + --> $DIR/complex-types.rs:6:21 + | +LL | struct Bar<const N: ()>; + | ^^ + | + = note: the only supported types are integers, `bool` and `char` + +error: using `No` as const generic parameters is forbidden + --> $DIR/complex-types.rs:12:21 + | +LL | struct Fez<const N: No>; + | ^^ + | + = note: the only supported types are integers, `bool` and `char` + +error: using `&'static u8` as const generic parameters is forbidden + --> $DIR/complex-types.rs:15:21 + | +LL | struct Faz<const N: &'static u8>; + | ^^^^^^^^^^^ + | + = note: the only supported types are integers, `bool` and `char` + +error: aborting due to 4 previous errors + |
