From d801a4da7cc8672c3b7655ccad218ab892b8dd9b Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 12 Feb 2015 10:47:38 -0500 Subject: [PATCH] Fallout: iter, add markers or other changes such that all type parameters are used. --- src/libcore/iter.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index fffba1561a38..7a54aeb6b9c5 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -62,6 +62,7 @@ use clone::Clone; use cmp; use cmp::Ord; use default::Default; +use marker; use mem; use num::{ToPrimitive, Int}; use ops::{Add, Deref, FnMut}; @@ -947,7 +948,7 @@ pub trait IteratorExt: Iterator + Sized { FromB: Default + Extend, Self: Iterator, { - struct SizeHint(usize, Option); + struct SizeHint(usize, Option, marker::PhantomData); impl Iterator for SizeHint { type Item = A; @@ -961,8 +962,8 @@ pub trait IteratorExt: Iterator + Sized { let mut ts: FromA = Default::default(); let mut us: FromB = Default::default(); - ts.extend(SizeHint(lo, hi)); - us.extend(SizeHint(lo, hi)); + ts.extend(SizeHint(lo, hi, marker::PhantomData)); + us.extend(SizeHint(lo, hi, marker::PhantomData)); for (t, u) in self { ts.extend(Some(t).into_iter()); @@ -2047,8 +2048,8 @@ pub struct Scan { } #[stable(feature = "rust1", since = "1.0.0")] -impl Iterator for Scan where - F: FnMut(&mut St, I::Item) -> Option, +impl, St, F> Iterator for Scan where + F: FnMut(&mut St, A) -> Option, { type Item = B;