]>
Commit | Line | Data |
---|---|---|
b7449926 | 1 | // run-pass |
85aaf69f SL |
2 | // Test references to `Self::Item` in the trait. Issue #20220. |
3 | ||
c34b1796 | 4 | |
85aaf69f SL |
5 | use std::vec; |
6 | ||
7 | trait IntoIteratorX { | |
8 | type Item; | |
9 | type IntoIter: Iterator<Item=Self::Item>; | |
10 | ||
11 | fn into_iter_x(self) -> Self::IntoIter; | |
12 | } | |
13 | ||
14 | impl<T> IntoIteratorX for Vec<T> { | |
15 | type Item = T; | |
16 | type IntoIter = vec::IntoIter<T>; | |
17 | ||
18 | fn into_iter_x(self) -> vec::IntoIter<T> { | |
19 | self.into_iter() | |
20 | } | |
21 | } | |
22 | ||
23 | fn main() { | |
24 | let vec = vec![1, 2, 3]; | |
25 | for (i, e) in vec.into_iter().enumerate() { | |
26 | assert_eq!(i+1, e); | |
27 | } | |
28 | } |