From 02f9be8524ac6e9706867e2ae0abd09bee95dc53 Mon Sep 17 00:00:00 2001 From: Oliver Middleton Date: Tue, 7 Jun 2016 22:32:48 +0100 Subject: [PATCH] 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. --- src/libcore/iter/iterator.rs | 15 --------------- 1 file changed, 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, Self: Sized + Iterator, { - struct SizeHint(usize, Option, marker::PhantomData); - impl Iterator for SizeHint { - type Item = A; - - fn next(&mut self) -> Option { None } - fn size_hint(&self) -> (usize, Option) { - (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));