| //@ check-pass |
| |
| // Test that the def collector makes `AnonConst`s not `InlineConst`s even |
| // when the const block is obscured via macros. |
| |
| #![feature(min_generic_const_args, adt_const_params)] |
| #![expect(incomplete_features)] |
| |
| macro_rules! const_block { |
| ($e:expr) => { const { |
| $e |
| } } |
| } |
| |
| macro_rules! foo_expr { |
| ($e:expr) => { Foo { |
| field: $e, |
| } } |
| } |
| |
| use std::marker::ConstParamTy; |
| |
| #[derive(PartialEq, Eq, ConstParamTy)] |
| struct Foo { field: u32 } |
| |
| fn foo<const N: Foo>() {} |
| |
| fn main() { |
| foo::<{ Foo { field: const_block!{ 1 + 1 }} }>(); |
| foo::<{ foo_expr! { const_block! { 1 + 1 }} }>(); |
| } |