about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Middleton <olliemail27@gmail.com>2016-06-07 22:32:48 +0100
committerOliver Middleton <olliemail27@gmail.com>2016-06-07 22:32:48 +0100
commit02f9be8524ac6e9706867e2ae0abd09bee95dc53 (patch)
tree867ec7b2b2b9b512a9e8c64fd97074274f307605
parent763f9234b052c7911dc4cf952a81a85c51c57784 (diff)
downloadrust-02f9be8524ac6e9706867e2ae0abd09bee95dc53.tar.gz
rust-02f9be8524ac6e9706867e2ae0abd09bee95dc53.zip
Remove unzip() SizeHint hack
This was using an invalid iterator so is likely to end with buggy
behaviour.

It also doesn't even benefit many type in std including Vec so removing it
shouldn't cause any problems.
-rw-r--r--src/libcore/iter/iterator.rs15
1 files changed, 0 insertions, 15 deletions
diff --git a/src/libcore/iter/iterator.rs b/src/libcore/iter/iterator.rs
index 71ca5ccdc8d..8c8b2017007 100644
--- a/src/libcore/iter/iterator.rs
+++ b/src/libcore/iter/iterator.rs
@@ -11,7 +11,6 @@
 use clone::Clone;
 use cmp::{Ord, PartialOrd, PartialEq, Ordering};
 use default::Default;
-use marker;
 use num::{Zero, One};
 use ops::{Add, FnMut, Mul};
 use option::Option::{self, Some, None};
@@ -1747,23 +1746,9 @@ pub trait Iterator {
         FromB: Default + Extend<B>,
         Self: Sized + Iterator<Item=(A, B)>,
     {
-        struct SizeHint<A>(usize, Option<usize>, marker::PhantomData<A>);
-        impl<A> Iterator for SizeHint<A> {
-            type Item = A;
-
-            fn next(&mut self) -> Option<A> { None }
-            fn size_hint(&self) -> (usize, Option<usize>) {
-                (self.0, self.1)
-            }
-        }
-
-        let (lo, hi) = self.size_hint();
         let mut ts: FromA = Default::default();
         let mut us: FromB = Default::default();
 
-        ts.extend(SizeHint(lo, hi, marker::PhantomData));
-        us.extend(SizeHint(lo, hi, marker::PhantomData));
-
         for (t, u) in self {
             ts.extend(Some(t));
             us.extend(Some(u));