diff options
Diffstat (limited to 'src/test/ui/repr/repr-transparent.rs')
-rw-r--r-- | src/test/ui/repr/repr-transparent.rs | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/src/test/ui/repr/repr-transparent.rs b/src/test/ui/repr/repr-transparent.rs deleted file mode 100644 index 8c9d1639c..000000000 --- a/src/test/ui/repr/repr-transparent.rs +++ /dev/null @@ -1,90 +0,0 @@ -// This file tests repr(transparent)-related errors reported during typeck. Other errors -// that are reported earlier and therefore preempt these are tested in: -// - repr-transparent-other-reprs.rs -// - repr-transparent-other-items.rs - -#![feature(transparent_unions)] - -use std::marker::PhantomData; - -#[repr(transparent)] -struct NoFields; - -#[repr(transparent)] -struct ContainsOnlyZst(()); - -#[repr(transparent)] -struct ContainsOnlyZstArray([bool; 0]); - -#[repr(transparent)] -struct ContainsMultipleZst(PhantomData<*const i32>, NoFields); - -#[repr(transparent)] -struct ContainsZstAndNonZst((), [i32; 2]); - -#[repr(transparent)] -struct MultipleNonZst(u8, u8); //~ ERROR needs at most one non-zero-sized field - -trait Mirror { type It: ?Sized; } -impl<T: ?Sized> Mirror for T { type It = Self; } - -#[repr(transparent)] -pub struct StructWithProjection(f32, <f32 as Mirror>::It); -//~^ ERROR needs at most one non-zero-sized field - -#[repr(transparent)] -struct NontrivialAlignZst(u32, [u16; 0]); //~ ERROR alignment larger than 1 - -#[repr(align(32))] -struct ZstAlign32<T>(PhantomData<T>); - -#[repr(transparent)] -struct GenericAlign<T>(ZstAlign32<T>, u32); //~ ERROR alignment larger than 1 - -#[repr(transparent)] //~ ERROR unsupported representation for zero-variant enum -enum Void {} //~ ERROR transparent enum needs exactly one variant, but has 0 - -#[repr(transparent)] -enum FieldlessEnum { - Foo, -} - -#[repr(transparent)] -enum UnitFieldEnum { - Foo(()), -} - -#[repr(transparent)] -enum TooManyFieldsEnum { - Foo(u32, String), -} -//~^^^ ERROR transparent enum needs at most one non-zero-sized field, but has 2 - -#[repr(transparent)] -enum MultipleVariants { //~ ERROR transparent enum needs exactly one variant, but has 2 - Foo(String), - Bar, -} - -#[repr(transparent)] -enum NontrivialAlignZstEnum { - Foo(u32, [u16; 0]), //~ ERROR alignment larger than 1 -} - -#[repr(transparent)] -enum GenericAlignEnum<T> { - Foo { bar: ZstAlign32<T>, baz: u32 } //~ ERROR alignment larger than 1 -} - -#[repr(transparent)] -union UnitUnion { - u: (), -} - -#[repr(transparent)] -union TooManyFields { //~ ERROR transparent union needs at most one non-zero-sized field, but has 2 - u: u32, - s: i32 -} - -fn main() {} |