fn next_back(&mut self) -> Option<T> { self.iter.next_back() }
}
-impl<T> ExactSize<T> for MoveItems<T> {}
+impl<T> ExactSizeIterator<T> for MoveItems<T> {}
impl<T: Ord> FromIterator<T> for BinaryHeap<T> {
- fn from_iter<Iter: Iterator<T>>(mut iter: Iter) -> BinaryHeap<T> {
+ fn from_iter<Iter: Iterator<T>>(iter: Iter) -> BinaryHeap<T> {
let vec: Vec<T> = iter.collect();
BinaryHeap::from_vec(vec)
}
use core::cmp;
use core::default::Default;
use core::fmt;
-use core::iter::{Chain, Enumerate, Repeat, Skip, Take};
+use core::iter::{Chain, Enumerate, Repeat, Skip, Take, repeat};
use core::iter;
use core::num::Int;
use core::slice;
// have to uselessly pretend to pad the longer one for type matching
if a_len < b_len {
- (a.mask_words(0).chain(Repeat::new(0u32).enumerate().take(b_len).skip(a_len)),
- b.mask_words(0).chain(Repeat::new(0u32).enumerate().take(0).skip(0)))
+ (a.mask_words(0).chain(repeat(0u32).enumerate().take(b_len).skip(a_len)),
+ b.mask_words(0).chain(repeat(0u32).enumerate().take(0).skip(0)))
} else {
- (a.mask_words(0).chain(Repeat::new(0u32).enumerate().take(0).skip(0)),
- b.mask_words(0).chain(Repeat::new(0u32).enumerate().take(a_len).skip(b_len)))
+ (a.mask_words(0).chain(repeat(0u32).enumerate().take(0).skip(0)),
+ b.mask_words(0).chain(repeat(0u32).enumerate().take(a_len).skip(b_len)))
}
}
}
}
-impl<'a> ExactSize<bool> for Bits<'a> {}
+impl<'a> ExactSizeIterator<bool> for Bits<'a> {}
impl<'a> RandomAccessIterator<bool> for Bits<'a> {
#[inline]
// Note that the design of these iterators permits an *arbitrary* initial pair of min and max,
// making these arbitrary sub-range iterators. However the logic to construct these paths
// efficiently is fairly involved, so this is a FIXME. The sub-range iterators also wouldn't be
- // able to accurately predict size, so those iterators can't implement ExactSize.
+ // able to accurately predict size, so those iterators can't implement ExactSizeIterator.
fn next(&mut self) -> Option<(K, V)> {
loop {
// We want the smallest element, so try to get the top of the left stack
impl<'a, K, V> DoubleEndedIterator<(&'a K, &'a V)> for Entries<'a, K, V> {
fn next_back(&mut self) -> Option<(&'a K, &'a V)> { self.inner.next_back() }
}
-impl<'a, K, V> ExactSize<(&'a K, &'a V)> for Entries<'a, K, V> {}
+impl<'a, K, V> ExactSizeIterator<(&'a K, &'a V)> for Entries<'a, K, V> {}
impl<'a, K, V> Iterator<(&'a K, &'a mut V)> for MutEntries<'a, K, V> {
impl<'a, K, V> DoubleEndedIterator<(&'a K, &'a mut V)> for MutEntries<'a, K, V> {
fn next_back(&mut self) -> Option<(&'a K, &'a mut V)> { self.inner.next_back() }
}
-impl<'a, K, V> ExactSize<(&'a K, &'a mut V)> for MutEntries<'a, K, V> {}
+impl<'a, K, V> ExactSizeIterator<(&'a K, &'a mut V)> for MutEntries<'a, K, V> {}
impl<K, V> Iterator<(K, V)> for MoveEntries<K, V> {
impl<K, V> DoubleEndedIterator<(K, V)> for MoveEntries<K, V> {
fn next_back(&mut self) -> Option<(K, V)> { self.inner.next_back() }
}
-impl<K, V> ExactSize<(K, V)> for MoveEntries<K, V> {}
+impl<K, V> ExactSizeIterator<(K, V)> for MoveEntries<K, V> {}
}
}
-impl<'a, A> ExactSize<&'a A> for Items<'a, A> {}
+impl<'a, A> ExactSizeIterator<&'a A> for Items<'a, A> {}
impl<'a, A> Iterator<&'a mut A> for MutItems<'a, A> {
#[inline]
}
}
-impl<'a, A> ExactSize<&'a mut A> for MutItems<'a, A> {}
+impl<'a, A> ExactSizeIterator<&'a mut A> for MutItems<'a, A> {}
/// Allows mutating a `DList` while iterating.
pub trait ListInsertion<A> {
}
}
-
-impl<'a, T> ExactSize<&'a T> for Items<'a, T> {}
+impl<'a, T> ExactSizeIterator<&'a T> for Items<'a, T> {}
impl<'a, T> RandomAccessIterator<&'a T> for Items<'a, T> {
#[inline]
}
}
-impl<'a, T> ExactSize<&'a mut T> for MutItems<'a, T> {}
+impl<'a, T> ExactSizeIterator<&'a mut T> for MutItems<'a, T> {}
impl<A: PartialEq> PartialEq for RingBuf<A> {
fn eq(&self, other: &RingBuf<A>) -> bool {
let u: Vec<int> = deq.iter().map(|&x| x).collect();
assert_eq!(u, v);
- let mut seq = iter::count(0u, 2).take(256);
+ let seq = iter::count(0u, 2).take(256);
let deq: RingBuf<uint> = seq.collect();
for (i, &x) in deq.iter().enumerate() {
assert_eq!(2*i, x);
use core::kinds::Sized;
use core::mem::size_of;
use core::mem;
-use core::prelude::{Clone, Greater, Iterator, Less, None, Option};
+use core::prelude::{Clone, Greater, Iterator, IteratorExt, Less, None, Option};
use core::prelude::{Ord, Ordering, RawPtr, Some, range};
use core::ptr;
use core::iter::{range_step, MultiplicativeIterator};
use core::iter::AdditiveIterator;
use core::kinds::Sized;
use core::prelude::{Char, Clone, Eq, Equiv};
-use core::prelude::{Iterator, SlicePrelude, None, Option, Ord, Ordering};
+use core::prelude::{Iterator, IteratorExt, SlicePrelude, None, Option, Ord, Ordering};
use core::prelude::{PartialEq, PartialOrd, Result, AsSlice, Some, Tuple2};
use core::prelude::{range};
use std::cmp::{Equal, Greater, Less, Ord, PartialOrd, Equiv};
use std::option::{Some, None};
use std::ptr::RawPtr;
- use std::iter::{Iterator, DoubleEndedIterator};
+ use std::iter::{Iterator, IteratorExt, DoubleEndedIteratorExt};
use super::*;
use std::slice::{AsSlice, SlicePrelude};
let gr_inds = s.grapheme_indices(true).rev().collect::<Vec<(uint, &str)>>();
let b: &[_] = &[(11, "\r\n"), (6, "ö̲"), (3, "é"), (0u, "a̐")];
assert_eq!(gr_inds.as_slice(), b);
- let mut gr_inds = s.grapheme_indices(true);
- let e1 = gr_inds.size_hint();
- assert_eq!(e1, (1, Some(13)));
- let c = gr_inds.count();
- assert_eq!(c, 4);
- let e2 = gr_inds.size_hint();
+ let mut gr_inds_iter = s.grapheme_indices(true);
+ {
+ let gr_inds = gr_inds_iter.by_ref();
+ let e1 = gr_inds.size_hint();
+ assert_eq!(e1, (1, Some(13)));
+ let c = gr_inds.count();
+ assert_eq!(c, 4);
+ }
+ let e2 = gr_inds_iter.size_hint();
assert_eq!(e2, (0, Some(0)));
// make sure the reverse iterator does the right thing with "\n" at beginning of string
use test::Bencher;
use test::black_box;
use super::*;
- use std::iter::{Iterator, DoubleEndedIterator};
+ use std::iter::{IteratorExt, DoubleEndedIteratorExt};
use std::str::StrPrelude;
use std::slice::SlicePrelude;
}
}
-impl<T> ExactSize<T> for MoveItems<T> {}
+impl<T> ExactSizeIterator<T> for MoveItems<T> {}
#[unsafe_destructor]
impl<T> Drop for MoveItems<T> {
use char;
use char::Char;
use fmt;
-use iter::{range, DoubleEndedIterator};
+use iter::{range, DoubleEndedIteratorExt};
use num::{Float, FPNaN, FPInfinite, ToPrimitive};
use num::cast;
use result::Ok;
use any;
use cell::{Cell, Ref, RefMut};
-use iter::{Iterator, range};
+use iter::{Iterator, IteratorExt, range};
use kinds::{Copy, Sized};
use mem;
use option::{Option, Some, None};
#![allow(unsigned_negation)]
use fmt;
-use iter::DoubleEndedIterator;
+use iter::DoubleEndedIteratorExt;
use num::{Int, cast};
use slice::SlicePrelude;
use cmp::{PartialEq, Eq};
use cmp::{PartialOrd, Ord};
use intrinsics;
-use iter::Iterator;
+use iter::IteratorExt;
use kinds::Copy;
use mem::size_of;
use ops::{Add, Sub, Mul, Div, Rem, Neg};
use cmp::{Eq, Ord};
use default::Default;
-use iter::{Iterator, DoubleEndedIterator, FromIterator, ExactSize};
+use iter::{Iterator, IteratorExt, DoubleEndedIterator, FromIterator, ExactSizeIterator};
use mem;
use result::{Result, Ok, Err};
use slice;
}
}
-impl<A> ExactSize<A> for Item<A> {}
+impl<A> ExactSizeIterator<A> for Item<A> {}
/////////////////////////////////////////////////////////////////////////////
// FromIterator
pub use ops::{Fn, FnMut, FnOnce};
// Reexported functions
-pub use iter::{range, repeat};
+pub use iter::range;
pub use mem::drop;
pub use str::from_str;
pub use cmp::{PartialEq, PartialOrd, Eq, Ord};
pub use cmp::{Ordering, Equiv};
pub use cmp::Ordering::{Less, Equal, Greater};
-pub use iter::{FromIterator, Extend};
-pub use iter::{Iterator, DoubleEndedIterator, RandomAccessIterator, CloneableIterator};
-pub use iter::{OrdIterator, MutableDoubleEndedIterator, ExactSize};
+pub use iter::{FromIterator, Extend, IteratorExt};
+pub use iter::{Iterator, DoubleEndedIterator, DoubleEndedIteratorExt, RandomAccessIterator};
+pub use iter::{IteratorCloneExt, CloneIteratorExt};
+pub use iter::{IteratorOrdExt, MutableDoubleEndedIterator, ExactSizeIterator};
pub use num::{ToPrimitive, FromPrimitive};
pub use option::Option;
pub use option::Option::{Some, None};
use std::fmt::Show;
use slice;
use slice::AsSlice;
-use iter::{Iterator, DoubleEndedIterator, FromIterator, ExactSize};
+use iter::{Iterator, IteratorExt, DoubleEndedIterator, FromIterator, ExactSizeIterator};
use option::{None, Option, Some};
/// `Result` is a type that represents either success (`Ok`) or failure (`Err`).
}
}
-impl<A> ExactSize<A> for Item<A> {}
+impl<A> ExactSizeIterator<A> for Item<A> {}
/////////////////////////////////////////////////////////////////////////////
// FromIterator
iterator!{struct Items -> *const T, &'a T}
#[experimental = "needs review"]
-impl<'a, T> ExactSize<&'a T> for Items<'a, T> {}
+impl<'a, T> ExactSizeIterator<&'a T> for Items<'a, T> {}
#[experimental = "needs review"]
impl<'a, T> Clone for Items<'a, T> {
iterator!{struct MutItems -> *mut T, &'a mut T}
#[experimental = "needs review"]
-impl<'a, T> ExactSize<&'a mut T> for MutItems<'a, T> {}
+impl<'a, T> ExactSizeIterator<&'a mut T> for MutItems<'a, T> {}
/// An abstraction over the splitting iterators, so that splitn, splitn_mut etc
/// can be implemented once.
use char;
use cmp::{Eq, mod};
use default::Default;
+use iter::{Map, Iterator, IteratorExt, DoubleEndedIterator};
+use iter::{DoubleEndedIteratorExt, ExactSizeIterator};
use iter::range;
-use iter::{DoubleEndedIterator, ExactSize};
-use iter::{Map, Iterator};
use kinds::Sized;
use mem;
use num::Int;
#[allow(missing_docs)]
pub mod traits {
use cmp::{Ord, Ordering, Less, Equal, Greater, PartialEq, PartialOrd, Equiv, Eq};
- use iter::Iterator;
+ use iter::IteratorExt;
use option::{Option, Some};
use ops;
use str::{Str, StrPrelude, eq_slice};
let desc_sep = format!("\n{}", " ".repeat(24));
- let mut rows = opts.iter().map(|optref| {
+ let rows = opts.iter().map(|optref| {
let OptGroup{short_name,
long_name,
hint,
//! The ISAAC random number generator.
use core::prelude::*;
-use core::iter::{range_step, Repeat};
use core::slice;
+use core::iter::{range_step, repeat};
use {Rng, SeedableRng, Rand};
fn reseed(&mut self, seed: &'a [u32]) {
// make the seed into [seed[0], seed[1], ..., seed[seed.len()
// - 1], 0, 0, ...], to fill rng.rsl.
- let seed_iter = seed.iter().map(|&x| x).chain(Repeat::new(0u32));
+ let seed_iter = seed.iter().map(|&x| x).chain(repeat(0u32));
for (rsl_elem, seed_elem) in self.rsl.iter_mut().zip(seed_iter) {
*rsl_elem = seed_elem;
fn reseed(&mut self, seed: &'a [u64]) {
// make the seed into [seed[0], seed[1], ..., seed[seed.len()
// - 1], 0, 0, ...], to fill rng.rsl.
- let seed_iter = seed.iter().map(|&x| x).chain(Repeat::new(0u64));
+ let seed_iter = seed.iter().map(|&x| x).chain(repeat(0u64));
for (rsl_elem, seed_elem) in self.rsl.iter_mut().zip(seed_iter) {
*rsl_elem = seed_elem;
pats: I,
pred: CFGIndex) -> CFGIndex {
//! Handles case where all of the patterns must match.
- let mut pats = pats;
pats.fold(pred, |pred, pat| self.pat(&**pat, pred))
}
}
fn exprs<'a, I: Iterator<&'a ast::Expr>>(&mut self,
- mut exprs: I,
+ exprs: I,
pred: CFGIndex) -> CFGIndex {
//! Constructs graph for `exprs` evaluated in order
exprs.fold(pred, |p, e| self.expr(e, p))
}
impl<'a> FromIterator<Vec<&'a Pat>> for Matrix<'a> {
- fn from_iter<T: Iterator<Vec<&'a Pat>>>(mut iterator: T) -> Matrix<'a> {
+ fn from_iter<T: Iterator<Vec<&'a Pat>>>(iterator: T) -> Matrix<'a> {
Matrix(iterator.collect())
}
}
}
}
}
-
}
}
-pub fn join_all<It: Iterator<constness>>(mut cs: It) -> constness {
+pub fn join_all<It: Iterator<constness>>(cs: It) -> constness {
cs.fold(integral_const, |a, b| join(a, b))
}
fn attempt_static(sess: &session::Session) -> Option<DependencyList> {
let crates = sess.cstore.get_used_crates(cstore::RequireStatic);
- if crates.iter().all(|&(_, ref p)| p.is_some()) {
+ if crates.iter().by_ref().all(|&(_, ref p)| p.is_some()) {
Some(crates.into_iter().map(|_| Some(cstore::RequireStatic)).collect())
} else {
None
match item.node {
ItemFn(..) => {
if item.ident.name == ctxt.main_name {
- ctxt.ast_map.with_path(item.id, |mut path| {
+ ctxt.ast_map.with_path(item.id, |path| {
if path.count() == 1 {
// This is a top-level function so can be 'main'
if ctxt.main_fn.is_none() {
}
pub fn def_to_path(tcx: &ty::ctxt, id: ast::DefId) -> ast::Path {
- ty::with_path(tcx, id, |mut path| ast::Path {
+ ty::with_path(tcx, id, |path| ast::Path {
global: false,
segments: path.last().map(|elem| ast::PathSegment {
identifier: ast::Ident::new(elem.name()),
// Iterate until something non-representable is found
fn find_nonrepresentable<'tcx, It: Iterator<Ty<'tcx>>>(cx: &ctxt<'tcx>, sp: Span,
seen: &mut Vec<Ty<'tcx>>,
- mut iter: It)
+ iter: It)
-> Representability {
iter.fold(Representable,
|r, ty| cmp::max(r, is_type_structurally_recursive(cx, sp, seen, ty)))
let types_a = substs_a.types.get_slice(subst::TypeSpace);
let types_b = substs_b.types.get_slice(subst::TypeSpace);
- let mut pairs = types_a.iter().zip(types_b.iter());
+ let pairs = types_a.iter().zip(types_b.iter());
pairs.all(|(&a, &b)| same_type(a, b))
}
}
ast::ExprMethodCall(ident, ref tps, ref args) => {
check_method_call(fcx, expr, ident, args.as_slice(), tps.as_slice(), lvalue_pref);
- let mut arg_tys = args.iter().map(|a| fcx.expr_ty(&**a));
+ let arg_tys = args.iter().map(|a| fcx.expr_ty(&**a));
let args_err = arg_tys.fold(false,
|rest_err, a| {
rest_err || ty::type_is_error(a)});
});
let pairs = fields.iter().zip(values);
- let mut strs = pairs.map(|(f, v)| format!(",{},\"{}\"", f, escape(
+ let strs = pairs.map(|(f, v)| format!(",{},\"{}\"", f, escape(
if *f == "qualname" && v.len() > 0 {
let mut n = self.krate.clone();
n.push_str("::");
// Use provided name
Some(name) => name.get().to_string(),
- _ => ccx.tcx().map.with_path(id, |mut path| {
+ _ => ccx.tcx().map.with_path(id, |path| {
if attr::contains_name(attrs, "no_mangle") {
// Don't mangle
path.last().unwrap().to_string()
let def = ty::lookup_trait_def(tcx, did);
let trait_items = ty::trait_items(tcx, did).clean(cx);
let provided = ty::provided_trait_methods(tcx, did);
- let mut items = trait_items.into_iter().map(|trait_item| {
+ let items = trait_items.into_iter().map(|trait_item| {
if provided.iter().any(|a| a.def_id == trait_item.def_id) {
clean::ProvidedMethod(trait_item)
} else {
bounds = if decl.bounds.len() == 0 {
"".to_string()
} else {
- let mut m = decl.bounds
+ let m = decl.bounds
.iter()
.map(|s| s.to_string());
format!(
}
};
- let mut lines = origtext.lines().filter(|l| {
+ let lines = origtext.lines().filter(|l| {
stripped_filtered_line(*l).is_none()
});
let text = lines.collect::<Vec<&str>>().connect("\n");
let opaque = opaque as *mut hoedown_html_renderer_state;
let tests = &mut *((*opaque).opaque as *mut ::test::Collector);
let text = str::from_utf8(text).unwrap();
- let mut lines = text.lines().map(|l| {
+ let lines = text.lines().map(|l| {
stripped_filtered_line(l).unwrap_or(l)
});
let text = lines.collect::<Vec<&str>>().connect("\n");
use alloc::boxed::Box;
use core::any::Any;
use core::atomic::{AtomicUint, SeqCst};
-use core::iter::Take;
+use core::iter::{IteratorExt, Take};
use core::kinds::marker;
use core::mem;
use core::prelude::{Clone, Drop, Err, Iterator, None, Ok, Option, Send, Some};
use core::kinds::Sized;
use fmt;
-use iter::Iterator;
+use iter::IteratorExt;
use mem;
use option::{Option, Some, None};
use slice::{SlicePrelude, AsSlice};
use default::Default;
use fmt::{mod, Show};
use hash::{Hash, Hasher, RandomSipHasher};
-use iter::{mod, Iterator, FromIterator, Extend};
+use iter::{mod, Iterator, IteratorExt, FromIterator, Extend};
use kinds::Sized;
use mem::{mod, replace};
use num::UnsignedInt;
use fmt::Show;
use fmt;
use hash::{Hash, Hasher, RandomSipHasher};
-use iter::{Iterator, FromIterator, FilterMap, Chain, Repeat, Zip, Extend};
+use iter::{Iterator, IteratorExt, FromIterator, FilterMap, Chain, Repeat, Zip, Extend, repeat};
use iter;
use option::{Some, None};
use result::{Ok, Err};
/// ```
#[unstable = "matches collection reform specification, waiting for dust to settle"]
pub fn difference<'a>(&'a self, other: &'a HashSet<T, H>) -> SetAlgebraItems<'a, T, H> {
- Repeat::new(other).zip(self.iter())
+ repeat(other).zip(self.iter())
.filter_map(|(other, elt)| {
if !other.contains(elt) { Some(elt) } else { None }
})
#[unstable = "matches collection reform specification, waiting for dust to settle"]
pub fn intersection<'a>(&'a self, other: &'a HashSet<T, H>)
-> SetAlgebraItems<'a, T, H> {
- Repeat::new(other).zip(self.iter())
+ repeat(other).zip(self.iter())
.filter_map(|(other, elt)| {
if other.contains(elt) { Some(elt) } else { None }
})
use clone::Clone;
use c_str::ToCStr;
-use iter::Iterator;
+use iter::IteratorExt;
use mem;
use ops::*;
use option::*;
#[cfg(target_os = "windows")]
pub mod dl {
use c_str::ToCStr;
- use iter::Iterator;
+ use iter::IteratorExt;
use libc;
use os;
use ptr;
use cmp;
use io::{Reader, Writer, Stream, Buffer, DEFAULT_BUF_SIZE, IoResult};
-use iter::ExactSize;
+use iter::ExactSizeIterator;
use ops::Drop;
use option::{Some, None, Option};
use result::{Ok, Err};
use error::{FromError, Error};
use fmt;
use int;
-use iter::Iterator;
+use iter::{Iterator, IteratorExt};
use mem::transmute;
use ops::{BitOr, BitXor, BitAnd, Sub, Not};
use option::{Option, Some, None};
pub use self::Flag::*;
pub use self::Protocol::*;
-use iter::Iterator;
+use iter::IteratorExt;
use io::{IoResult};
use io::net::ip::{SocketAddr, IpAddr};
use option::{Option, Some, None};
use fmt;
use io::{mod, IoResult, IoError};
use io::net;
-use iter::Iterator;
+use iter::{Iterator, IteratorExt};
use option::{Option, None, Some};
use result::{Ok, Err};
use str::{FromStr, StrPrelude};
use clone::Clone;
use io::IoResult;
-use iter::Iterator;
use result::Err;
use io::net::ip::{SocketAddr, ToSocketAddr};
use io::{Reader, Writer, Listener, Acceptor};
use fmt;
use io::{Reader, Writer, IoResult, IoError, OtherIoError,
standard_error, EndOfFile, LineBufferedWriter, BufferedReader};
-use iter::Iterator;
use kinds::Send;
use libc;
use mem;
use error::{FromError, Error};
use fmt;
use io::{IoResult, IoError};
-use iter::Iterator;
+use iter::{Iterator, IteratorExt};
use libc::{c_void, c_int};
use libc;
use boxed::Box;
use c_str::CString;
use clone::Clone;
use fmt;
-use iter::Iterator;
+use iter::IteratorExt;
use option::{Option, None, Some};
use str;
use str::{MaybeOwned, Str, StrPrelude};
use cmp::{PartialEq, Eq, PartialOrd, Ord, Ordering};
use hash;
use io::Writer;
-use iter::{DoubleEndedIterator, AdditiveIterator, Extend, Iterator, Map};
-use kinds::Sized;
+use iter::{DoubleEndedIteratorExt, AdditiveIterator, Extend};
+use iter::{Iterator, IteratorExt, Map};
use option::{Option, None, Some};
+use kinds::Sized;
use str::{FromStr, Str};
use str;
use slice::{CloneSliceAllocPrelude, Splits, AsSlice, VectorVector,
use cmp::{PartialEq, Eq, PartialOrd, Ord, Ordering};
use hash;
use io::Writer;
-use iter::{AdditiveIterator, DoubleEndedIterator, Extend, Iterator, Map};
+use iter::{AdditiveIterator, DoubleEndedIteratorExt, Extend};
+use iter::{Iterator, IteratorExt, Map};
use mem;
use option::{Option, Some, None};
use slice::{AsSlice, SlicePrelude};
#[doc(no_inline)] pub use ops::{Fn, FnMut, FnOnce};
// Reexported functions
-#[doc(no_inline)] pub use iter::{range, repeat};
+#[doc(no_inline)] pub use iter::range;
#[doc(no_inline)] pub use mem::drop;
#[doc(no_inline)] pub use str::from_str;
#[doc(no_inline)] pub use cmp::{PartialEq, PartialOrd, Eq, Ord};
#[doc(no_inline)] pub use cmp::{Ordering, Equiv};
#[doc(no_inline)] pub use cmp::Ordering::{Less, Equal, Greater};
-#[doc(no_inline)] pub use iter::{FromIterator, Extend, ExactSize};
-#[doc(no_inline)] pub use iter::{Iterator, DoubleEndedIterator};
-#[doc(no_inline)] pub use iter::{RandomAccessIterator, CloneableIterator};
-#[doc(no_inline)] pub use iter::{OrdIterator, MutableDoubleEndedIterator};
+#[doc(no_inline)] pub use iter::{FromIterator, Extend, ExactSizeIterator};
+#[doc(no_inline)] pub use iter::{Iterator, IteratorExt, DoubleEndedIterator};
+#[doc(no_inline)] pub use iter::{DoubleEndedIteratorExt, CloneIteratorExt};
+#[doc(no_inline)] pub use iter::{RandomAccessIterator, IteratorCloneExt};
+#[doc(no_inline)] pub use iter::{IteratorOrdExt, MutableDoubleEndedIterator};
#[doc(no_inline)] pub use num::{ToPrimitive, FromPrimitive};
#[doc(no_inline)] pub use boxed::Box;
#[doc(no_inline)] pub use option::Option;
use cell::RefCell;
use clone::Clone;
use io::IoResult;
-use iter::Iterator;
+use iter::{Iterator, IteratorExt};
use mem;
use rc::Rc;
use result::{Ok, Err};
#![allow(non_camel_case_types)]
use io::{IoResult, Writer};
-use iter::Iterator;
+use iter::{Iterator, IteratorExt};
use option::{Some, None};
use os;
use result::{Ok, Err};
#[cfg(not(any(target_os = "macos", target_os = "ios")))]
fn print(w: &mut Writer, idx: int, addr: *mut libc::c_void) -> IoResult<()> {
- use iter::Iterator;
+ use iter::IteratorExt;
use os;
use path::GenericPath;
use ptr::RawPtr;
pub mod compat {
use intrinsics::{atomic_store_relaxed, transmute};
- use iter::Iterator;
+ use iter::IteratorExt;
use libc::types::os::arch::extra::{LPCWSTR, HMODULE, LPCSTR, LPVOID};
use prelude::*;
use libc::funcs::extra::msvcrt::get_osfhandle;
use mem;
- use iter::Iterator;
+ use iter::{Iterator, IteratorExt};
use str::StrPrelude;
if cfg.gid().is_some() || cfg.uid().is_some() {
/// The type of the iterator used by with_path.
pub type PathElems<'a, 'b> = iter::Chain<Values<'a, PathElem>, LinkedPath<'b>>;
-pub fn path_to_string<PI: Iterator<PathElem>>(mut path: PI) -> String {
+pub fn path_to_string<PI: Iterator<PathElem>>(path: PI) -> String {
let itr = token::get_ident_interner();
path.fold(String::new(), |mut s, e| {
ast::ItemStruct(fold_struct(cx, def), generics)
}
ast::ItemEnum(def, generics) => {
- let mut variants = def.variants.into_iter().filter_map(|v| {
+ let variants = def.variants.into_iter().filter_map(|v| {
if !(cx.in_cfg)(v.node.attrs.as_slice()) {
None
} else {
attr::cfg_matches(diagnostic, cfg, &*mis[0])
})
}
-
}
impl MacItems {
- pub fn new<I: Iterator<P<ast::Item>>>(mut it: I) -> Box<MacResult+'static> {
+ pub fn new<I: Iterator<P<ast::Item>>>(it: I) -> Box<MacResult+'static> {
box MacItems { items: it.collect() } as Box<MacResult+'static>
}
}
let slicename = self.ecx.ident_of("__args_vec");
{
let args = names.into_iter().map(|a| a.unwrap());
- let mut args = locals.into_iter().chain(args);
+ let args = locals.into_iter().chain(args);
let args = self.ecx.expr_vec_slice(self.fmtsp, args.collect());
lets.push(self.ecx.stmt_let(self.fmtsp, false, slicename, args));
}
impl<T: Eq> Eq for OwnedSlice<T> {}
impl<T> FromIterator<T> for OwnedSlice<T> {
- fn from_iter<I: Iterator<T>>(mut iter: I) -> OwnedSlice<T> {
+ fn from_iter<I: Iterator<T>>(iter: I) -> OwnedSlice<T> {
OwnedSlice::from_vec(iter.collect())
}
}
use self::GraphemeState::*;
use core::cmp;
use core::slice::SlicePrelude;
-use core::iter::{Filter, AdditiveIterator, Iterator, DoubleEndedIterator};
+use core::iter::{Filter, AdditiveIterator, Iterator, IteratorExt};
+use core::iter::{DoubleEndedIterator, DoubleEndedIteratorExt};
use core::kinds::Sized;
use core::option::{Option, None, Some};
use core::str::{CharSplits, StrPrelude};