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