| //@ check-pass | |
| #![allow(dead_code)] | |
| struct Foo<T>(T); | |
| struct IntoIter<T>(T); | |
| impl<'a, T: 'a> Iterator for IntoIter<T> { | |
| type Item = (); | |
| fn next(&mut self) -> Option<()> { | |
| None | |
| } | |
| } | |
| impl<T> IntoIterator for Foo<T> { | |
| type Item = (); | |
| type IntoIter = IntoIter<T>; | |
| fn into_iter(self) -> IntoIter<T> { | |
| IntoIter(self.0) | |
| } | |
| } | |
| fn main() {} |