```rust trait Hello {} impl<const N: usize> Hello for [(); N] {} trait Foo { type Assoc; } fn foo<const N: usize>() where <u32 as Foo>::Assoc: Hello, u32: Foo<Assoc = [(); N]>, { } ``` I expected to see this pass. Instead, this ICEd. `<u32 as Foo>::Assoc: Hello` is considered global, but it is not global.