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