about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libcore/iter.rs16
-rw-r--r--src/libcore/prelude.rs2
-rw-r--r--src/libstd/prelude/v1.rs1
3 files changed, 7 insertions, 12 deletions
diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs
index b19cbb54d29..963377ff6b3 100644
--- a/src/libcore/iter.rs
+++ b/src/libcore/iter.rs
@@ -737,20 +737,15 @@ pub trait IteratorExt: Iterator + Sized {
     fn rev(self) -> Rev<Self> {
         Rev{iter: self}
     }
-}
-
-#[unstable = "trait is unstable"]
-impl<I> IteratorExt for I where I: Iterator {}
 
-/// Extention trait for iterators of pairs.
-#[unstable = "newly added trait, likely to be merged with IteratorExt"]
-pub trait IteratorPairExt<A, B>: Iterator<Item=(A, B)> + Sized {
     /// Converts an iterator of pairs into a pair of containers.
     ///
     /// Loops through the entire iterator, collecting the first component of
     /// each item into one new container, and the second component into another.
-    fn unzip<FromA, FromB>(mut self) -> (FromA, FromB) where
-        FromA: Default + Extend<A>, FromB: Default + Extend<B>
+    fn unzip<A, B, FromA, FromB>(mut self) -> (FromA, FromB) where
+        FromA: Default + Extend<A>,
+        FromB: Default + Extend<B>,
+        Self: Iterator<Item=(A, B)>,
     {
         struct SizeHint<A>(uint, Option<uint>);
         impl<A> Iterator for SizeHint<A> {
@@ -778,7 +773,8 @@ pub trait IteratorPairExt<A, B>: Iterator<Item=(A, B)> + Sized {
     }
 }
 
-impl<A, B, I> IteratorPairExt<A, B> for I where I: Iterator<Item=(A, B)> {}
+#[unstable = "trait is unstable"]
+impl<I> IteratorExt for I where I: Iterator {}
 
 /// A range iterator able to yield elements from both ends
 ///
diff --git a/src/libcore/prelude.rs b/src/libcore/prelude.rs
index b661fb7ccba..1355825e56d 100644
--- a/src/libcore/prelude.rs
+++ b/src/libcore/prelude.rs
@@ -44,7 +44,7 @@ pub use cmp::{PartialEq, PartialOrd, Eq, Ord};
 pub use iter::{Extend, IteratorExt};
 pub use iter::{Iterator, DoubleEndedIterator};
 pub use iter::{IteratorCloneExt, CloneIteratorExt};
-pub use iter::{IteratorOrdExt, ExactSizeIterator, IteratorPairExt};
+pub use iter::{IteratorOrdExt, ExactSizeIterator};
 pub use option::Option::{mod, Some, None};
 pub use ptr::{PtrExt, MutPtrExt};
 pub use result::Result::{mod, Ok, Err};
diff --git a/src/libstd/prelude/v1.rs b/src/libstd/prelude/v1.rs
index dea2749c182..2d2f3f895d0 100644
--- a/src/libstd/prelude/v1.rs
+++ b/src/libstd/prelude/v1.rs
@@ -30,7 +30,6 @@
 #[stable] #[doc(no_inline)] pub use iter::ExactSizeIterator;
 #[stable] #[doc(no_inline)] pub use iter::{Iterator, IteratorExt, Extend};
 #[stable] #[doc(no_inline)] pub use iter::{IteratorCloneExt, IteratorOrdExt};
-#[stable] #[doc(no_inline)] pub use iter::IteratorPairExt;
 #[stable] #[doc(no_inline)] pub use option::Option::{mod, Some, None};
 #[stable] #[doc(no_inline)] pub use ptr::{PtrExt, MutPtrExt};
 #[stable] #[doc(no_inline)] pub use result::Result::{mod, Ok, Err};