//@ compile-flags: -Znext-solver //@ known-bug: #92505 // When checking that the impl method where-bounds are implied by the trait, // we prove `<() as A>::Assoc: A` in the environment `<() as A>::Assoc: A`. // // Normalizing `<() as A>::Assoc` is ambiguous in that environment. The // where-bound `<() as A>::Assoc: A` may apply, resulting in overflow. trait A { type Assoc; fn f() where Self::Assoc: A, { } } impl A for () { type Assoc = (); fn f() where Self::Assoc: A, { <() as A>::f(); } } fn main() {}