trait Bar {} trait Foo { type Assoc: Bar; } impl Bar<3> for u16 {} impl Foo for i16 { type Assoc = u16; //~ ERROR the trait bound `u16: Bar` } fn main() {}