//@ compile-flags: -Znext-solver //@ check-pass // Regression test for #119607. pub trait IntoFoo { type Item; type IntoIter: Foo; fn into_iter(self) -> Self::IntoIter; } pub trait Foo { type Item; fn next(self) -> Option; } pub fn foo<'a, Iter1, Elem1>(a: &'a Iter1) where &'a Iter1: IntoFoo, { a.into_iter().next(); } fn main() {}