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