error: unions cannot have zero fields --> $DIR/debug.rs:82:1 | LL | union EmptyUnion {} | ^^^^^^^^^^^^^^^^^^^ error: layout_of(E) = Layout { size: Size(12 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Arbitrary { offsets: [ Size(0 bytes), ], memory_index: [ 0, ], }, largest_niche: Some( Niche { offset: Size(0 bytes), value: Int( I32, false, ), valid_range: 0..=0, }, ), variants: Multiple { tag: Initialized { value: Int( I32, false, ), valid_range: 0..=0, }, tag_encoding: Direct, tag_field: 0, variants: [ Layout { size: Size(4 bytes), align: AbiAndPrefAlign { abi: Align(1 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Arbitrary { offsets: [], memory_index: [], }, largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(1 bytes), }, Layout { size: Size(12 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: $SOME_ALIGN, }, abi: Uninhabited, fields: Arbitrary { offsets: [ Size(4 bytes), Size(4 bytes), Size(8 bytes), ], memory_index: [ 0, 1, 2, ], }, largest_niche: None, variants: Single { index: 1, }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, ], }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:7:1 | LL | enum E { Foo, Bar(!, i32, i32) } | ^^^^^^ error: layout_of(S) = Layout { size: Size(8 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: $SOME_ALIGN, }, abi: ScalarPair( Initialized { value: Int( I32, true, ), valid_range: 0..=4294967295, }, Initialized { value: Int( I32, true, ), valid_range: 0..=4294967295, }, ), fields: Arbitrary { offsets: [ Size(0 bytes), Size(8 bytes), Size(4 bytes), ], memory_index: [ 0, 2, 1, ], }, largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:10:1 | LL | struct S { f1: i32, f2: (), f3: i32 } | ^^^^^^^^ error: layout_of(U) = Layout { size: Size(8 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Union( 2, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:13:1 | LL | union U { f1: (i32, i32), f3: i32 } | ^^^^^^^ error: layout_of(Result) = Layout { size: Size(8 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: $SOME_ALIGN, }, abi: ScalarPair( Initialized { value: Int( I32, false, ), valid_range: 0..=1, }, Initialized { value: Int( I32, true, ), valid_range: 0..=4294967295, }, ), fields: Arbitrary { offsets: [ Size(0 bytes), ], memory_index: [ 0, ], }, largest_niche: Some( Niche { offset: Size(0 bytes), value: Int( I32, false, ), valid_range: 0..=1, }, ), variants: Multiple { tag: Initialized { value: Int( I32, false, ), valid_range: 0..=1, }, tag_encoding: Direct, tag_field: 0, variants: [ Layout { size: Size(8 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: $SOME_ALIGN, }, abi: ScalarPair( Initialized { value: Int( I32, false, ), valid_range: 0..=1, }, Initialized { value: Int( I32, true, ), valid_range: 0..=4294967295, }, ), fields: Arbitrary { offsets: [ Size(4 bytes), ], memory_index: [ 0, ], }, largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, Layout { size: Size(8 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: $SOME_ALIGN, }, abi: ScalarPair( Initialized { value: Int( I32, false, ), valid_range: 0..=1, }, Initialized { value: Int( I32, true, ), valid_range: 0..=4294967295, }, ), fields: Arbitrary { offsets: [ Size(4 bytes), ], memory_index: [ 0, ], }, largest_niche: None, variants: Single { index: 1, }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), }, ], }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:16:1 | LL | type Test = Result; | ^^^^^^^^^ error: layout_of(i32) = Layout { size: Size(4 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: $SOME_ALIGN, }, abi: Scalar( Initialized { value: Int( I32, true, ), valid_range: 0..=4294967295, }, ), fields: Primitive, largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), } --> $DIR/debug.rs:19:1 | LL | type T = impl std::fmt::Debug; | ^^^^^^ error: layout_of(V) = Layout { size: Size(2 bytes), align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Union( 2, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(2 bytes), } --> $DIR/debug.rs:25:1 | LL | pub union V { | ^^^^^^^^^^^ error: layout_of(W) = Layout { size: Size(2 bytes), align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Union( 2, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(2 bytes), } --> $DIR/debug.rs:31:1 | LL | pub union W { | ^^^^^^^^^^^ error: layout_of(Y) = Layout { size: Size(0 bytes), align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Union( 2, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(2 bytes), } --> $DIR/debug.rs:37:1 | LL | pub union Y { | ^^^^^^^^^^^ error: layout_of(P1) = Layout { size: Size(4 bytes), align: AbiAndPrefAlign { abi: Align(1 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Union( 1, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:44:1 | LL | union P1 { x: u32 } | ^^^^^^^^ error: layout_of(P2) = Layout { size: Size(8 bytes), align: AbiAndPrefAlign { abi: Align(1 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Union( 1, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:48:1 | LL | union P2 { x: (u32, u32) } | ^^^^^^^^ error: layout_of(P3) = Layout { size: Size(16 bytes), align: AbiAndPrefAlign { abi: Align(1 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Union( 1, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:56:1 | LL | union P3 { x: F32x4 } | ^^^^^^^^ error: layout_of(P4) = Layout { size: Size(12 bytes), align: AbiAndPrefAlign { abi: Align(1 bytes), pref: $SOME_ALIGN, }, abi: Memory { sized: true, }, fields: Union( 1, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:60:1 | LL | union P4 { x: E } | ^^^^^^^^ error: layout_of(P5) = Layout { size: Size(1 bytes), align: AbiAndPrefAlign { abi: Align(1 bytes), pref: $SOME_ALIGN, }, abi: Scalar( Union { value: Int( I8, false, ), }, ), fields: Union( 2, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:64:1 | LL | union P5 { zst: [u16; 0], byte: u8 } | ^^^^^^^^ error: layout_of(MaybeUninit) = Layout { size: Size(1 bytes), align: AbiAndPrefAlign { abi: Align(1 bytes), pref: $SOME_ALIGN, }, abi: Scalar( Union { value: Int( I8, false, ), }, ), fields: Union( 2, ), largest_niche: None, variants: Single { index: 0, }, max_repr_align: None, unadjusted_abi_align: Align(1 bytes), } --> $DIR/debug.rs:67:1 | LL | type X = std::mem::MaybeUninit; | ^^^^^^ error: `#[rustc_layout]` can only be applied to `struct`/`enum`/`union` declarations and type aliases --> $DIR/debug.rs:70:1 | LL | const C: () = (); | ^^^^^^^^^^^ error[E0277]: the size for values of type `str` cannot be known at compilation time --> $DIR/debug.rs:78:19 | LL | type Impossible = (str, str); | ^^^^^^^^^^ doesn't have a size known at compile-time | = help: the trait `Sized` is not implemented for `str` = note: only the last element of a tuple may have a dynamically sized type error: the type `EmptyUnion` has an unknown layout --> $DIR/debug.rs:82:1 | LL | union EmptyUnion {} | ^^^^^^^^^^^^^^^^ error: `#[rustc_layout]` can only be applied to `struct`/`enum`/`union` declarations and type aliases --> $DIR/debug.rs:74:5 | LL | const C: () = (); | ^^^^^^^^^^^ error: aborting due to 19 previous errors For more information about this error, try `rustc --explain E0277`.