diff options
Diffstat (limited to 'tests/ui/const-generics/variant-discrimiant-no-generics.rs')
-rw-r--r-- | tests/ui/const-generics/variant-discrimiant-no-generics.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/ui/const-generics/variant-discrimiant-no-generics.rs b/tests/ui/const-generics/variant-discrimiant-no-generics.rs new file mode 100644 index 00000000000..e286aa9a613 --- /dev/null +++ b/tests/ui/const-generics/variant-discrimiant-no-generics.rs @@ -0,0 +1,32 @@ +// revisions: full min + +#![cfg_attr(full, feature(generic_const_exprs))] +#![cfg_attr(full, allow(incomplete_features))] + +enum Foo<const N: isize> { + Variant = N, + //~^ ERROR: generic parameters may not be used in enum discriminant values +} + +enum Owo<const N: isize> { + Variant = { N + 1 }, + //~^ ERROR: generic parameters may not be used in enum discriminant values +} + +#[repr(isize)] +enum Bar<T> { + Variant = { std::mem::size_of::<T>() as isize }, + Other(T), //~^ ERROR: generic parameters may not be used in enum discriminant values +} + +#[repr(isize)] +enum UwU<'a> { + Variant = { + let a: &'a (); + //~^ ERROR: generic parameters may not be used in enum discriminant values + 10_isize + }, + Other(&'a ()), +} + +fn main() {} |