| #![feature(const_trait_impl, impl_trait_in_bindings)] | |
| struct S; | |
| #[const_trait] | |
| trait Trait<const N: u32> {} | |
| impl const Trait<0> for () {} | |
| const fn f< | |
| T: Trait< | |
| { | |
| const fn g<U: [const] Trait<0>>() {} | |
| struct I<U: [const] Trait<0>>(U); | |
| //~^ ERROR `[const]` is not allowed here | |
| let x: &impl [const] Trait<0> = &(); | |
| //~^ ERROR `[const]` is not allowed here | |
| 0 | |
| }, | |
| >, | |
| >(x: &T) { | |
| // Should be allowed here | |
| let y: &impl [const] Trait<0> = x; | |
| } | |
| pub fn main() {} |