//@ check-pass // We previously incorrectly deduplicated the list of projection bounds // of trait objects, causing us to incorrectly reject this code, cc #136458. trait Sup { type Assoc; } impl Sup for () { type Assoc = T; } trait Trait: Sup + Sup {} impl Trait for () {} fn main() { let x: &dyn Trait<(), _> = &(); let y: &dyn Trait<_, ()> = x; }