// Regression test for #133361. trait Sup { type Assoc; } impl Sup for () { type Assoc = T; } impl Dyn for () {} trait Dyn: Sup + Sup {} trait Trait { type Assoc; } impl Trait for dyn Dyn<(), ()> { type Assoc = &'static str; } impl Trait for dyn Dyn { //~^ ERROR conflicting implementations of trait `Trait` for type `(dyn Dyn<(), ()> + 'static)` type Assoc = usize; } fn call(x: usize) -> as Trait>::Assoc { x } fn main() { let x: &'static str = call::<(), ()>(0xDEADBEEF); println!("{x}"); }