// check-pass pub trait Foo { type Bar; } pub trait Broken { type Assoc; fn broken(&self) where Self::Assoc: Foo; } impl Broken for T { type Assoc = (); fn broken(&self) where Self::Assoc: Foo { let _x: ::Bar; } } fn main() { let _m: &dyn Broken = &(); }