error: fn_abi_of(test) = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: u8,
                       layout: Layout {
                           size: Size(1 bytes),
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Int(
                                       I8,
                                       false,
                                   ),
                                   valid_range: 0..=255,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: None,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: bool,
                   layout: Layout {
                       size: Size(1 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Scalar(
                           Initialized {
                               value: Int(
                                   I8,
                                   false,
                               ),
                               valid_range: 0..=1,
                           },
                       ),
                       fields: Primitive,
                       largest_niche: Some(
                           Niche {
                               offset: Size(0 bytes),
                               value: Int(
                                   I8,
                                   false,
                               ),
                               valid_range: 0..=1,
                           },
                       ),
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Direct(
                   ArgAttributes {
                       regular: NoUndef,
                       arg_ext: Zext,
                       pointee_size: Size(0 bytes),
                       pointee_align: None,
                   },
               ),
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
  --> $DIR/debug.rs:15:1
   |
LL | fn test(_x: u8) -> bool { true }
   | ^^^^^^^^^^^^^^^^^^^^^^^

error: fn_abi_of(TestFnPtr) = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: bool,
                       layout: Layout {
                           size: Size(1 bytes),
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Int(
                                       I8,
                                       false,
                                   ),
                                   valid_range: 0..=1,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: Some(
                               Niche {
                                   offset: Size(0 bytes),
                                   value: Int(
                                       I8,
                                       false,
                                   ),
                                   valid_range: 0..=1,
                               },
                           ),
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: Zext,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: u8,
                   layout: Layout {
                       size: Size(1 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Scalar(
                           Initialized {
                               value: Int(
                                   I8,
                                   false,
                               ),
                               valid_range: 0..=255,
                           },
                       ),
                       fields: Primitive,
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Direct(
                   ArgAttributes {
                       regular: NoUndef,
                       arg_ext: None,
                       pointee_size: Size(0 bytes),
                       pointee_align: None,
                   },
               ),
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
  --> $DIR/debug.rs:18:1
   |
LL | type TestFnPtr = fn(bool) -> u8;
   | ^^^^^^^^^^^^^^

error: fn_abi_of(test_generic) = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: *const T,
                       layout: Layout {
                           size: $SOME_SIZE,
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Pointer(
                                       AddressSpace(
                                           0,
                                       ),
                                   ),
                                   valid_range: $FULL,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: None,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
  --> $DIR/debug.rs:21:1
   |
LL | fn test_generic<T>(_x: *const T) { }
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: `#[rustc_abi]` can only be applied to function items, type aliases, and associated functions
  --> $DIR/debug.rs:24:1
   |
LL | const C: () = ();
   | ^^^^^^^^^^^

error: ABIs are not compatible
       left ABI = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: u8,
                       layout: Layout {
                           size: Size(1 bytes),
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Int(
                                       I8,
                                       false,
                                   ),
                                   valid_range: 0..=255,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: None,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
       right ABI = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: u32,
                       layout: Layout {
                           size: $SOME_SIZE,
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Int(
                                       I32,
                                       false,
                                   ),
                                   valid_range: $FULL,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: None,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
  --> $DIR/debug.rs:40:1
   |
LL | type TestAbiNe = (fn(u8), fn(u32));
   | ^^^^^^^^^^^^^^

error: ABIs are not compatible
       left ABI = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: [u8; 32],
                       layout: Layout {
                           size: Size(32 bytes),
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Aggregate {
                               sized: true,
                           },
                           fields: Array {
                               stride: Size(1 bytes),
                               count: 32,
                           },
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Indirect {
                       attrs: ArgAttributes {
                           regular: NoAlias | NoCapture | NonNull | NoUndef,
                           arg_ext: None,
                           pointee_size: Size(32 bytes),
                           pointee_align: Some(
                               Align(1 bytes),
                           ),
                       },
                       meta_attrs: None,
                       on_stack: false,
                   },
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
       right ABI = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: [u32; 32],
                       layout: Layout {
                           size: Size(128 bytes),
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Aggregate {
                               sized: true,
                           },
                           fields: Array {
                               stride: Size(4 bytes),
                               count: 32,
                           },
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Indirect {
                       attrs: ArgAttributes {
                           regular: NoAlias | NoCapture | NonNull | NoUndef,
                           arg_ext: None,
                           pointee_size: Size(128 bytes),
                           pointee_align: Some(
                               Align(4 bytes),
                           ),
                       },
                       meta_attrs: None,
                       on_stack: false,
                   },
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
  --> $DIR/debug.rs:43:1
   |
LL | type TestAbiNeLarger = (fn([u8; 32]), fn([u32; 32]));
   | ^^^^^^^^^^^^^^^^^^^^

error: ABIs are not compatible
       left ABI = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: f32,
                       layout: Layout {
                           size: $SOME_SIZE,
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Float(
                                       F32,
                                   ),
                                   valid_range: $FULL,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: None,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
       right ABI = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: u32,
                       layout: Layout {
                           size: $SOME_SIZE,
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Int(
                                       I32,
                                       false,
                                   ),
                                   valid_range: $FULL,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: None,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
  --> $DIR/debug.rs:46:1
   |
LL | type TestAbiNeFloat = (fn(f32), fn(u32));
   | ^^^^^^^^^^^^^^^^^^^

error: ABIs are not compatible
       left ABI = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: i32,
                       layout: Layout {
                           size: $SOME_SIZE,
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Int(
                                       I32,
                                       true,
                                   ),
                                   valid_range: $FULL,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: None,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
       right ABI = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: u32,
                       layout: Layout {
                           size: $SOME_SIZE,
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Int(
                                       I32,
                                       false,
                                   ),
                                   valid_range: $FULL,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: None,
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoUndef,
                           arg_ext: None,
                           pointee_size: Size(0 bytes),
                           pointee_align: None,
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
  --> $DIR/debug.rs:50:1
   |
LL | type TestAbiNeSign = (fn(i32), fn(u32));
   | ^^^^^^^^^^^^^^^^^^

error[E0277]: the size for values of type `str` cannot be known at compilation time
  --> $DIR/debug.rs:53:46
   |
LL | type TestAbiEqNonsense = (fn((str, str)), fn((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: `#[rustc_abi]` can only be applied to function items, type aliases, and associated functions
  --> $DIR/debug.rs:28:5
   |
LL |     const C: () = ();
   |     ^^^^^^^^^^^

error: fn_abi_of(assoc_test) = FnAbi {
           args: [
               ArgAbi {
                   layout: TyAndLayout {
                       ty: &S,
                       layout: Layout {
                           size: $SOME_SIZE,
                           align: AbiAndPrefAlign {
                               abi: $SOME_ALIGN,
                               pref: $SOME_ALIGN,
                           },
                           abi: Scalar(
                               Initialized {
                                   value: Pointer(
                                       AddressSpace(
                                           0,
                                       ),
                                   ),
                                   valid_range: $NON_NULL,
                               },
                           ),
                           fields: Primitive,
                           largest_niche: Some(
                               Niche {
                                   offset: Size(0 bytes),
                                   value: Pointer(
                                       AddressSpace(
                                           0,
                                       ),
                                   ),
                                   valid_range: $NON_NULL,
                               },
                           ),
                           variants: Single {
                               index: 0,
                           },
                           max_repr_align: None,
                           unadjusted_abi_align: $SOME_ALIGN,
                       },
                   },
                   mode: Direct(
                       ArgAttributes {
                           regular: NoAlias | NonNull | ReadOnly | NoUndef,
                           arg_ext: None,
                           pointee_size: Size(2 bytes),
                           pointee_align: Some(
                               Align(2 bytes),
                           ),
                       },
                   ),
               },
           ],
           ret: ArgAbi {
               layout: TyAndLayout {
                   ty: (),
                   layout: Layout {
                       size: Size(0 bytes),
                       align: AbiAndPrefAlign {
                           abi: $SOME_ALIGN,
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [],
                           memory_index: [],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: $SOME_ALIGN,
                   },
               },
               mode: Ignore,
           },
           c_variadic: false,
           fixed_count: 1,
           conv: Rust,
           can_unwind: $SOME_BOOL,
       }
  --> $DIR/debug.rs:33:5
   |
LL |     fn assoc_test(&self) { }
   |     ^^^^^^^^^^^^^^^^^^^^

error: aborting due to 11 previous errors

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