//@ compile-flags: -Znext-solver //@ check-pass // `(): Trait` is a global where-bound with a projection bound. // This previously resulted in ambiguity as we considered both // the impl and the where-bound while normalizing. trait Trait { type Assoc; } impl Trait for () { type Assoc = &'static (); } fn foo<'a>(x: <() as Trait>::Assoc) where (): Trait, { } fn main() {}