| //@ 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<Assoc = &'a ()>, | |
| { | |
| } | |
| fn main() {} |