trait Baz { type Quaks; } impl Baz for u8 { type Quaks = [u16; 3]; } trait Bar {} impl Bar for [u16; 4] {} impl Bar for [[u16; 3]; 3] {} trait Foo where [::Quaks; 2]: Bar, //~ ERROR the trait bound `[[u16; 3]; 2]: Bar` is not satisfied [E0277] ::Quaks: Bar, //~ ERROR the trait bound `[u16; 3]: Bar` is not satisfied [E0277] { } struct FooImpl; impl Foo for FooImpl {} //~^ ERROR the trait bound `[u16; 3]: Bar` is not satisfied [E0277] //~^^ ERROR the trait bound `[[u16; 3]; 2]: Bar` is not satisfied [E0277] fn f(_: impl Foo) {} //~^ ERROR the trait bound `[u16; 3]: Bar` is not satisfied [E0277] //~^^ ERROR the trait bound `[[u16; 3]; 2]: Bar` is not satisfied [E0277] fn main() { f(FooImpl) }