| trait Trait<const N: usize> { | |
| const Assoc: usize; | |
| } | |
| impl<const N: usize> Trait<N> for () { | |
| const Assoc: usize = 1; | |
| } | |
| pub const fn foo<const N: usize>() where (): Trait<N> { | |
| let bar = [(); <()>::Assoc]; | |
| //~^ error: constant expression depends on a generic parameter | |
| //~| error: constant expression depends on a generic parameter | |
| } | |
| trait Trait2<const N: usize> { | |
| const Assoc2: usize; | |
| } | |
| impl<const N: usize> Trait2<N> for () { | |
| const Assoc2: usize = N - 1; | |
| } | |
| pub const fn foo2<const N: usize>() where (): Trait2<N> { | |
| let bar2 = [(); <()>::Assoc2]; | |
| //~^ error: constant expression depends on a generic parameter | |
| //~| error: constant expression depends on a generic parameter | |
| } | |
| fn main() { | |
| foo::<0>(); | |
| foo2::<0>(); | |
| } |