diff --git a/src/libcollections/binary_heap.rs b/src/libcollections/binary_heap.rs index 275fc34f81326..11576fbb00c9b 100644 --- a/src/libcollections/binary_heap.rs +++ b/src/libcollections/binary_heap.rs @@ -656,7 +656,7 @@ impl FromIterator for BinaryHeap { } impl IntoIterator for BinaryHeap { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter() @@ -664,7 +664,7 @@ impl IntoIterator for BinaryHeap { } impl<'a, T> IntoIterator for &'a BinaryHeap where T: Ord { - type Iter = Iter<'a, T>; + type IntoIter = Iter<'a, T>; fn into_iter(self) -> Iter<'a, T> { self.iter() diff --git a/src/libcollections/bit.rs b/src/libcollections/bit.rs index 8ba0eb9b7efe5..6d15a264172a1 100644 --- a/src/libcollections/bit.rs +++ b/src/libcollections/bit.rs @@ -1071,7 +1071,7 @@ impl<'a> RandomAccessIterator for Iter<'a> { } impl<'a> IntoIterator for &'a Bitv { - type Iter = Iter<'a>; + type IntoIter = Iter<'a>; fn into_iter(self) -> Iter<'a> { self.iter() @@ -1883,7 +1883,7 @@ impl<'a> Iterator for SymmetricDifference<'a> { } impl<'a> IntoIterator for &'a BitvSet { - type Iter = SetIter<'a>; + type IntoIter = SetIter<'a>; fn into_iter(self) -> SetIter<'a> { self.iter() diff --git a/src/libcollections/btree/map.rs b/src/libcollections/btree/map.rs index aec50d5380880..2cef08725a2f6 100644 --- a/src/libcollections/btree/map.rs +++ b/src/libcollections/btree/map.rs @@ -463,7 +463,7 @@ impl BTreeMap { } impl IntoIterator for BTreeMap { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter() @@ -471,7 +471,7 @@ impl IntoIterator for BTreeMap { } impl<'a, K, V> IntoIterator for &'a BTreeMap { - type Iter = Iter<'a, K, V>; + type IntoIter = Iter<'a, K, V>; fn into_iter(self) -> Iter<'a, K, V> { self.iter() @@ -479,7 +479,7 @@ impl<'a, K, V> IntoIterator for &'a BTreeMap { } impl<'a, K, V> IntoIterator for &'a mut BTreeMap { - type Iter = IterMut<'a, K, V>; + type IntoIter = IterMut<'a, K, V>; fn into_iter(mut self) -> IterMut<'a, K, V> { self.iter_mut() diff --git a/src/libcollections/btree/set.rs b/src/libcollections/btree/set.rs index c888a261f9d21..7cb31ab1f6dbe 100644 --- a/src/libcollections/btree/set.rs +++ b/src/libcollections/btree/set.rs @@ -481,7 +481,7 @@ impl FromIterator for BTreeSet { } impl IntoIterator for BTreeSet { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter() @@ -489,7 +489,7 @@ impl IntoIterator for BTreeSet { } impl<'a, T> IntoIterator for &'a BTreeSet { - type Iter = Iter<'a, T>; + type IntoIter = Iter<'a, T>; fn into_iter(self) -> Iter<'a, T> { self.iter() diff --git a/src/libcollections/dlist.rs b/src/libcollections/dlist.rs index 748230c5d24cf..a080146e0ec50 100644 --- a/src/libcollections/dlist.rs +++ b/src/libcollections/dlist.rs @@ -831,7 +831,7 @@ impl FromIterator for DList { } impl IntoIterator for DList { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter() @@ -839,7 +839,7 @@ impl IntoIterator for DList { } impl<'a, T> IntoIterator for &'a DList { - type Iter = Iter<'a, T>; + type IntoIter = Iter<'a, T>; fn into_iter(self) -> Iter<'a, T> { self.iter() @@ -847,7 +847,7 @@ impl<'a, T> IntoIterator for &'a DList { } impl<'a, T> IntoIterator for &'a mut DList { - type Iter = IterMut<'a, T>; + type IntoIter = IterMut<'a, T>; fn into_iter(mut self) -> IterMut<'a, T> { self.iter_mut() diff --git a/src/libcollections/enum_set.rs b/src/libcollections/enum_set.rs index da14650607747..da533d34703dd 100644 --- a/src/libcollections/enum_set.rs +++ b/src/libcollections/enum_set.rs @@ -258,7 +258,7 @@ impl FromIterator for EnumSet { } impl<'a, E> IntoIterator for &'a EnumSet where E: CLike { - type Iter = Iter; + type IntoIter = Iter; fn into_iter(self) -> Iter { self.iter() diff --git a/src/libcollections/ring_buf.rs b/src/libcollections/ring_buf.rs index 76849e6ade85a..5f1dc1d2ef4ff 100644 --- a/src/libcollections/ring_buf.rs +++ b/src/libcollections/ring_buf.rs @@ -1608,7 +1608,7 @@ impl FromIterator for RingBuf { } impl IntoIterator for RingBuf { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter() @@ -1616,7 +1616,7 @@ impl IntoIterator for RingBuf { } impl<'a, T> IntoIterator for &'a RingBuf { - type Iter = Iter<'a, T>; + type IntoIter = Iter<'a, T>; fn into_iter(self) -> Iter<'a, T> { self.iter() @@ -1624,7 +1624,7 @@ impl<'a, T> IntoIterator for &'a RingBuf { } impl<'a, T> IntoIterator for &'a mut RingBuf { - type Iter = IterMut<'a, T>; + type IntoIter = IterMut<'a, T>; fn into_iter(mut self) -> IterMut<'a, T> { self.iter_mut() diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs index 70097c956cd0e..1cd2a89ad604e 100644 --- a/src/libcollections/vec.rs +++ b/src/libcollections/vec.rs @@ -1388,7 +1388,7 @@ impl FromIterator for Vec { } impl IntoIterator for Vec { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter() @@ -1396,7 +1396,7 @@ impl IntoIterator for Vec { } impl<'a, T> IntoIterator for &'a Vec { - type Iter = slice::Iter<'a, T>; + type IntoIter = slice::Iter<'a, T>; fn into_iter(self) -> slice::Iter<'a, T> { self.iter() @@ -1404,7 +1404,7 @@ impl<'a, T> IntoIterator for &'a Vec { } impl<'a, T> IntoIterator for &'a mut Vec { - type Iter = slice::IterMut<'a, T>; + type IntoIter = slice::IterMut<'a, T>; fn into_iter(mut self) -> slice::IterMut<'a, T> { self.iter_mut() diff --git a/src/libcollections/vec_map.rs b/src/libcollections/vec_map.rs index 739b8d8ce19c2..93d02de9b550e 100644 --- a/src/libcollections/vec_map.rs +++ b/src/libcollections/vec_map.rs @@ -669,7 +669,7 @@ impl FromIterator<(usize, V)> for VecMap { } impl IntoIterator for VecMap { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter() @@ -677,7 +677,7 @@ impl IntoIterator for VecMap { } impl<'a, T> IntoIterator for &'a VecMap { - type Iter = Iter<'a, T>; + type IntoIter = Iter<'a, T>; fn into_iter(self) -> Iter<'a, T> { self.iter() @@ -685,7 +685,7 @@ impl<'a, T> IntoIterator for &'a VecMap { } impl<'a, T> IntoIterator for &'a mut VecMap { - type Iter = IterMut<'a, T>; + type IntoIter = IterMut<'a, T>; fn into_iter(mut self) -> IterMut<'a, T> { self.iter_mut() diff --git a/src/libcore/array.rs b/src/libcore/array.rs index 5c4567e567b0d..a596fe4a58809 100644 --- a/src/libcore/array.rs +++ b/src/libcore/array.rs @@ -49,7 +49,7 @@ macro_rules! array_impls { } impl<'a, T> IntoIterator for &'a [T; $N] { - type Iter = Iter<'a, T>; + type IntoIter = Iter<'a, T>; fn into_iter(self) -> Iter<'a, T> { self.iter() @@ -57,7 +57,7 @@ macro_rules! array_impls { } impl<'a, T> IntoIterator for &'a mut [T; $N] { - type Iter = IterMut<'a, T>; + type IntoIter = IterMut<'a, T>; fn into_iter(self) -> IterMut<'a, T> { self.iter_mut() diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index 5df64cfaadaaa..20cd1c3083944 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -120,14 +120,15 @@ pub trait FromIterator { /// Conversion into an `Iterator` pub trait IntoIterator { - type Iter: Iterator; + type IntoIter: Iterator; /// Consumes `Self` and returns an iterator over it - fn into_iter(self) -> Self::Iter; + #[stable(feature = "rust1", since = "1.0.0")] + fn into_iter(self) -> Self::IntoIter; } impl IntoIterator for I where I: Iterator { - type Iter = I; + type IntoIter = I; fn into_iter(self) -> I { self @@ -967,10 +968,9 @@ pub trait IteratorExt: Iterator + Sized { /// Creates an iterator that clones the elements it yields. Useful for converting an /// Iterator<&T> to an Iterator. #[unstable(feature = "core", reason = "recent addition")] - fn cloned(self) -> Cloned where - Self: Iterator, - D: Deref, - T: Clone, + fn cloned(self) -> Cloned where + Self::Item: Deref, + ::Output: Clone, { Cloned { it: self } } diff --git a/src/libcore/slice.rs b/src/libcore/slice.rs index fc51920ec6b82..459addb09fd72 100644 --- a/src/libcore/slice.rs +++ b/src/libcore/slice.rs @@ -628,7 +628,7 @@ impl<'a, T> Default for &'a [T] { // impl<'a, T> IntoIterator for &'a [T] { - type Iter = Iter<'a, T>; + type IntoIter = Iter<'a, T>; fn into_iter(self) -> Iter<'a, T> { self.iter() @@ -636,7 +636,7 @@ impl<'a, T> IntoIterator for &'a [T] { } impl<'a, T> IntoIterator for &'a mut [T] { - type Iter = IterMut<'a, T>; + type IntoIter = IterMut<'a, T>; fn into_iter(self) -> IterMut<'a, T> { self.iter_mut() diff --git a/src/libstd/collections/hash/map.rs b/src/libstd/collections/hash/map.rs index 710f021d9125e..18dd122891dae 100644 --- a/src/libstd/collections/hash/map.rs +++ b/src/libstd/collections/hash/map.rs @@ -1377,7 +1377,7 @@ impl<'a, K, V, S, H> IntoIterator for &'a HashMap S: HashState, H: hash::Hasher { - type Iter = Iter<'a, K, V>; + type IntoIter = Iter<'a, K, V>; fn into_iter(self) -> Iter<'a, K, V> { self.iter() @@ -1389,7 +1389,7 @@ impl<'a, K, V, S, H> IntoIterator for &'a mut HashMap S: HashState, H: hash::Hasher { - type Iter = IterMut<'a, K, V>; + type IntoIter = IterMut<'a, K, V>; fn into_iter(mut self) -> IterMut<'a, K, V> { self.iter_mut() @@ -1401,7 +1401,7 @@ impl IntoIterator for HashMap S: HashState, H: hash::Hasher { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter() diff --git a/src/libstd/collections/hash/set.rs b/src/libstd/collections/hash/set.rs index e40f17f29e804..de3c0424c9a85 100644 --- a/src/libstd/collections/hash/set.rs +++ b/src/libstd/collections/hash/set.rs @@ -840,7 +840,7 @@ impl<'a, T, S, H> IntoIterator for &'a HashSet S: HashState, H: hash::Hasher { - type Iter = Iter<'a, T>; + type IntoIter = Iter<'a, T>; fn into_iter(self) -> Iter<'a, T> { self.iter() @@ -852,7 +852,7 @@ impl IntoIterator for HashSet S: HashState, H: hash::Hasher { - type Iter = IntoIter; + type IntoIter = IntoIter; fn into_iter(self) -> IntoIter { self.into_iter()