error: unions cannot have zero fields
  --> $DIR/debug.rs:84:1
   |
LL | union EmptyUnion {}
   | ^^^^^^^^^^^^^^^^^^^

error: `#[rustc_dump_layout]` attribute cannot be used on constants
  --> $DIR/debug.rs:71:1
   |
LL | #[rustc_dump_layout(debug)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: `#[rustc_dump_layout]` can be applied to data types and type aliases

error: `#[rustc_dump_layout]` attribute cannot be used on associated consts
  --> $DIR/debug.rs:75:5
   |
LL |     #[rustc_dump_layout(debug)]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: `#[rustc_dump_layout]` can be applied to data types and type aliases

error: layout_of(E) = Layout {
           size: Size(12 bytes),
           align: AbiAlign {
               abi: Align(4 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Arbitrary {
               offsets: [
                   Size(0 bytes),
               ],
               in_memory_order: [
                   0,
               ],
           },
           largest_niche: Some(
               Niche {
                   offset: Size(0 bytes),
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=0,
               },
           ),
           uninhabited: false,
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=0,
               },
               tag_encoding: Direct,
               tag_field: 0,
               variants: [
                   VariantLayout {
                       size: Size(4 bytes),
                       backend_repr: Memory {
                           sized: true,
                       },
                       field_offsets: [],
                       fields_in_memory_order: [],
                       largest_niche: None,
                       uninhabited: false,
                   },
                   VariantLayout {
                       size: Size(12 bytes),
                       backend_repr: Memory {
                           sized: true,
                       },
                       field_offsets: [
                           Size(4 bytes),
                           Size(4 bytes),
                           Size(8 bytes),
                       ],
                       fields_in_memory_order: [
                           0,
                           1,
                           2,
                       ],
                       largest_niche: None,
                       uninhabited: true,
                   },
               ],
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(4 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:8:1
   |
LL | enum E { Foo, Bar(!, i32, i32) }
   | ^^^^^^

error: layout_of(S) = Layout {
           size: Size(8 bytes),
           align: AbiAlign {
               abi: Align(4 bytes),
           },
           backend_repr: 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),
               ],
               in_memory_order: [
                   0,
                   2,
                   1,
               ],
           },
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(4 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:11:1
   |
LL | struct S { f1: i32, f2: (), f3: i32 }
   | ^^^^^^^^

error: layout_of(U) = Layout {
           size: Size(8 bytes),
           align: AbiAlign {
               abi: Align(4 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Union(
               2,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(4 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:14:1
   |
LL | union U { f1: (i32, i32), f3: i32 }
   | ^^^^^^^

error: layout_of(Result<i32, i32>) = Layout {
           size: Size(8 bytes),
           align: AbiAlign {
               abi: Align(4 bytes),
           },
           backend_repr: 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),
               ],
               in_memory_order: [
                   0,
               ],
           },
           largest_niche: Some(
               Niche {
                   offset: Size(0 bytes),
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=1,
               },
           ),
           uninhabited: false,
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=1,
               },
               tag_encoding: Direct,
               tag_field: 0,
               variants: [
                   VariantLayout {
                       size: Size(8 bytes),
                       backend_repr: ScalarPair(
                           Initialized {
                               value: Int(
                                   I32,
                                   false,
                               ),
                               valid_range: 0..=1,
                           },
                           Initialized {
                               value: Int(
                                   I32,
                                   true,
                               ),
                               valid_range: 0..=4294967295,
                           },
                       ),
                       field_offsets: [
                           Size(4 bytes),
                       ],
                       fields_in_memory_order: [
                           0,
                       ],
                       largest_niche: None,
                       uninhabited: false,
                   },
                   VariantLayout {
                       size: Size(8 bytes),
                       backend_repr: ScalarPair(
                           Initialized {
                               value: Int(
                                   I32,
                                   false,
                               ),
                               valid_range: 0..=1,
                           },
                           Initialized {
                               value: Int(
                                   I32,
                                   true,
                               ),
                               valid_range: 0..=4294967295,
                           },
                       ),
                       field_offsets: [
                           Size(4 bytes),
                       ],
                       fields_in_memory_order: [
                           0,
                       ],
                       largest_niche: None,
                       uninhabited: false,
                   },
               ],
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(4 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:17:1
   |
LL | type Test = Result<i32, i32>;
   | ^^^^^^^^^

error: layout_of(i32) = Layout {
           size: Size(4 bytes),
           align: AbiAlign {
               abi: Align(4 bytes),
           },
           backend_repr: Scalar(
               Initialized {
                   value: Int(
                       I32,
                       true,
                   ),
                   valid_range: 0..=4294967295,
               },
           ),
           fields: Primitive,
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(4 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:20:1
   |
LL | type T = impl std::fmt::Debug;
   | ^^^^^^

error: layout_of(V) = Layout {
           size: Size(2 bytes),
           align: AbiAlign {
               abi: Align(2 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Union(
               2,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(2 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:27:1
   |
LL | pub union V {
   | ^^^^^^^^^^^

error: layout_of(W) = Layout {
           size: Size(2 bytes),
           align: AbiAlign {
               abi: Align(2 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Union(
               2,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(2 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:33:1
   |
LL | pub union W {
   | ^^^^^^^^^^^

error: layout_of(Y) = Layout {
           size: Size(0 bytes),
           align: AbiAlign {
               abi: Align(2 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Union(
               2,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(2 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:39:1
   |
LL | pub union Y {
   | ^^^^^^^^^^^

error: layout_of(P1) = Layout {
           size: Size(4 bytes),
           align: AbiAlign {
               abi: Align(1 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Union(
               1,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(1 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:46:1
   |
LL | union P1 { x: u32 }
   | ^^^^^^^^

error: layout_of(P2) = Layout {
           size: Size(8 bytes),
           align: AbiAlign {
               abi: Align(1 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Union(
               1,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(1 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:50:1
   |
LL | union P2 { x: (u32, u32) }
   | ^^^^^^^^

error: layout_of(P3) = Layout {
           size: Size(16 bytes),
           align: AbiAlign {
               abi: Align(1 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Union(
               1,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(1 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:58:1
   |
LL | union P3 { x: F32x4 }
   | ^^^^^^^^

error: layout_of(P4) = Layout {
           size: Size(12 bytes),
           align: AbiAlign {
               abi: Align(1 bytes),
           },
           backend_repr: Memory {
               sized: true,
           },
           fields: Union(
               1,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(1 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:62:1
   |
LL | union P4 { x: E }
   | ^^^^^^^^

error: layout_of(P5) = Layout {
           size: Size(1 bytes),
           align: AbiAlign {
               abi: Align(1 bytes),
           },
           backend_repr: Scalar(
               Union {
                   value: Int(
                       I8,
                       false,
                   ),
               },
           ),
           fields: Union(
               2,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(1 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:66:1
   |
LL | union P5 { zst: [u16; 0], byte: u8 }
   | ^^^^^^^^

error: layout_of(MaybeUninit<u8>) = Layout {
           size: Size(1 bytes),
           align: AbiAlign {
               abi: Align(1 bytes),
           },
           backend_repr: Scalar(
               Union {
                   value: Int(
                       I8,
                       false,
                   ),
               },
           ),
           fields: Union(
               2,
           ),
           largest_niche: None,
           uninhabited: false,
           variants: Single {
               index: 0,
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(1 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:69:1
   |
LL | type X = std::mem::MaybeUninit<u8>;
   | ^^^^^^

error[E0277]: the size for values of type `str` cannot be known at compilation time
  --> $DIR/debug.rs:80: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 has an unknown layout
  --> $DIR/debug.rs:84:1
   |
LL | union EmptyUnion {}
   | ^^^^^^^^^^^^^^^^

error: the type `T` does not have a fixed layout
  --> $DIR/debug.rs:90:1
   |
LL | type TooGeneric<T> = T;
   | ^^^^^^^^^^^^^^^^^^

error: layout_of(Option<bool>) = Layout {
           size: Size(1 bytes),
           align: AbiAlign {
               abi: Align(1 bytes),
           },
           backend_repr: Scalar(
               Initialized {
                   value: Int(
                       I8,
                       false,
                   ),
                   valid_range: 0..=2,
               },
           ),
           fields: Arbitrary {
               offsets: [
                   Size(0 bytes),
               ],
               in_memory_order: [
                   0,
               ],
           },
           largest_niche: Some(
               Niche {
                   offset: Size(0 bytes),
                   value: Int(
                       I8,
                       false,
                   ),
                   valid_range: 0..=2,
               },
           ),
           uninhabited: false,
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I8,
                       false,
                   ),
                   valid_range: 0..=2,
               },
               tag_encoding: Niche {
                   untagged_variant: 1,
                   niche_variants: 0..=0,
                   niche_start: 2,
               },
               tag_field: 0,
               variants: [
                   VariantLayout {
                       size: Size(0 bytes),
                       backend_repr: Memory {
                           sized: true,
                       },
                       field_offsets: [],
                       fields_in_memory_order: [],
                       largest_niche: None,
                       uninhabited: false,
                   },
                   VariantLayout {
                       size: Size(1 bytes),
                       backend_repr: Scalar(
                           Initialized {
                               value: Int(
                                   I8,
                                   false,
                               ),
                               valid_range: 0..=1,
                           },
                       ),
                       field_offsets: [
                           Size(0 bytes),
                       ],
                       fields_in_memory_order: [
                           0,
                       ],
                       largest_niche: Some(
                           Niche {
                               offset: Size(0 bytes),
                               value: Int(
                                   I8,
                                   false,
                               ),
                               valid_range: 0..=1,
                           },
                       ),
                       uninhabited: false,
                   },
               ],
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(1 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:93:1
   |
LL | type OptBool = Option<bool>;
   | ^^^^^^^^^^^^

error: layout_of(Option<char>) = Layout {
           size: Size(4 bytes),
           align: AbiAlign {
               abi: Align(4 bytes),
           },
           backend_repr: Scalar(
               Initialized {
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: (..=1114111) | (4294967295..),
               },
           ),
           fields: Arbitrary {
               offsets: [
                   Size(0 bytes),
               ],
               in_memory_order: [
                   0,
               ],
           },
           largest_niche: Some(
               Niche {
                   offset: Size(0 bytes),
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: (..=1114111) | (4294967295..),
               },
           ),
           uninhabited: false,
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: (..=1114111) | (4294967295..),
               },
               tag_encoding: Niche {
                   untagged_variant: 1,
                   niche_variants: 0..=0,
                   niche_start: 4294967295,
               },
               tag_field: 0,
               variants: [
                   VariantLayout {
                       size: Size(0 bytes),
                       backend_repr: Memory {
                           sized: true,
                       },
                       field_offsets: [],
                       fields_in_memory_order: [],
                       largest_niche: None,
                       uninhabited: false,
                   },
                   VariantLayout {
                       size: Size(4 bytes),
                       backend_repr: Scalar(
                           Initialized {
                               value: Int(
                                   I32,
                                   false,
                               ),
                               valid_range: 0..=1114111,
                           },
                       ),
                       field_offsets: [
                           Size(0 bytes),
                       ],
                       fields_in_memory_order: [
                           0,
                       ],
                       largest_niche: Some(
                           Niche {
                               offset: Size(0 bytes),
                               value: Int(
                                   I32,
                                   false,
                               ),
                               valid_range: 0..=1114111,
                           },
                       ),
                       uninhabited: false,
                   },
               ],
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(4 bytes),
           randomization_seed: $SEED,
       }
  --> $DIR/debug.rs:96:1
   |
LL | type OptChar = Option<char>;
   | ^^^^^^^^^^^^

error: aborting due to 22 previous errors

For more information about this error, try `rustc --explain E0277`.
