// run-pass // Test references to `Self::Item` in the trait. Issue #20220. use std::vec; trait IntoIteratorX { type Item; type IntoIter: Iterator; fn into_iter_x(self) -> Self::IntoIter; } impl IntoIteratorX for Vec { type Item = T; type IntoIter = vec::IntoIter; fn into_iter_x(self) -> vec::IntoIter { self.into_iter() } } fn main() { let vec = vec![1, 2, 3]; for (i, e) in vec.into_iter().enumerate() { assert_eq!(i+1, e); } }