diff options
| author | Marvin Löbel <loebel.marvin@gmail.com> | 2014-03-20 14:12:56 +0100 |
|---|---|---|
| committer | Marvin Löbel <loebel.marvin@gmail.com> | 2014-03-25 21:49:55 +0100 |
| commit | 6200e761f0ef58510ad2acc383b29de7e7a79bcd (patch) | |
| tree | 4eb8bee6a91f0d8cbc79b33506344a56f1891e5d /src/libstd | |
| parent | 1f5571abc222520537daa00fc8256040647eec86 (diff) | |
| download | rust-6200e761f0ef58510ad2acc383b29de7e7a79bcd.tar.gz rust-6200e761f0ef58510ad2acc383b29de7e7a79bcd.zip | |
Changed `iter::Extendable` and `iter::FromIterator` to take a `Iterator` by value
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/iter.rs | 8 | ||||
| -rw-r--r-- | src/libstd/option.rs | 2 | ||||
| -rw-r--r-- | src/libstd/path/posix.rs | 4 | ||||
| -rw-r--r-- | src/libstd/path/windows.rs | 4 | ||||
| -rw-r--r-- | src/libstd/result.rs | 2 | ||||
| -rw-r--r-- | src/libstd/slice.rs | 8 | ||||
| -rw-r--r-- | src/libstd/str.rs | 8 | ||||
| -rw-r--r-- | src/libstd/vec.rs | 12 |
8 files changed, 24 insertions, 24 deletions
diff --git a/src/libstd/iter.rs b/src/libstd/iter.rs index 8762f23c3ce..0a19bc43b28 100644 --- a/src/libstd/iter.rs +++ b/src/libstd/iter.rs @@ -76,13 +76,13 @@ use mem; /// Conversion from an `Iterator` pub trait FromIterator<A> { /// Build a container with elements from an external iterator. - fn from_iterator<T: Iterator<A>>(iterator: &mut T) -> Self; + fn from_iterator<T: Iterator<A>>(iterator: T) -> Self; } /// A type growable from an `Iterator` implementation pub trait Extendable<A>: FromIterator<A> { /// Extend a container with the elements yielded by an iterator - fn extend<T: Iterator<A>>(&mut self, iterator: &mut T); + fn extend<T: Iterator<A>>(&mut self, iterator: T); } /// An interface for dealing with "external iterators". These types of iterators @@ -460,7 +460,7 @@ pub trait Iterator<A> { /// ``` #[inline] fn collect<B: FromIterator<A>>(&mut self) -> B { - FromIterator::from_iterator(self) + FromIterator::from_iterator(self.by_ref()) } /// Loops through `n` iterations, returning the `n`th element of the @@ -2336,7 +2336,7 @@ mod tests { #[test] fn test_counter_from_iter() { let mut it = count(0, 5).take(10); - let xs: ~[int] = FromIterator::from_iterator(&mut it); + let xs: ~[int] = FromIterator::from_iterator(it); assert_eq!(xs, ~[0, 5, 10, 15, 20, 25, 30, 35, 40, 45]); } diff --git a/src/libstd/option.rs b/src/libstd/option.rs index 23363a97845..14dc42195e1 100644 --- a/src/libstd/option.rs +++ b/src/libstd/option.rs @@ -593,7 +593,7 @@ pub fn collect<T, Iter: Iterator<Option<T>>, V: FromIterator<T>>(iter: Iter) -> } }); - let v: V = FromIterator::from_iterator(&mut iter); + let v: V = FromIterator::from_iterator(iter.by_ref()); if iter.state { None diff --git a/src/libstd/path/posix.rs b/src/libstd/path/posix.rs index 3596a07eeb2..cb4c830f380 100644 --- a/src/libstd/path/posix.rs +++ b/src/libstd/path/posix.rs @@ -277,7 +277,7 @@ impl GenericPath for Path { (None, None) => break, (Some(a), None) => { comps.push(a); - comps.extend(&mut ita); + comps.extend(ita.by_ref()); break; } (None, _) => comps.push(dot_dot_static), @@ -290,7 +290,7 @@ impl GenericPath for Path { comps.push(dot_dot_static); } comps.push(a); - comps.extend(&mut ita); + comps.extend(ita.by_ref()); break; } } diff --git a/src/libstd/path/windows.rs b/src/libstd/path/windows.rs index 9d65a99a0b5..d488997b0c2 100644 --- a/src/libstd/path/windows.rs +++ b/src/libstd/path/windows.rs @@ -539,7 +539,7 @@ impl GenericPath for Path { (Some(a), None) => { comps.push(a); if !a_verb { - comps.extend(&mut ita); + comps.extend(ita.by_ref()); break; } } @@ -561,7 +561,7 @@ impl GenericPath for Path { } comps.push(a); if !a_verb { - comps.extend(&mut ita); + comps.extend(ita.by_ref()); break; } } diff --git a/src/libstd/result.rs b/src/libstd/result.rs index 5c3a587d989..df1c4ae60ba 100644 --- a/src/libstd/result.rs +++ b/src/libstd/result.rs @@ -230,7 +230,7 @@ pub fn collect<T, E, Iter: Iterator<Result<T, E>>, V: FromIterator<T>>(iter: Ite } }); - let v: V = FromIterator::from_iterator(&mut iter); + let v: V = FromIterator::from_iterator(iter.by_ref()); match iter.state { Some(err) => Err(err), diff --git a/src/libstd/slice.rs b/src/libstd/slice.rs index 985feaf6ab6..8788a584f30 100644 --- a/src/libstd/slice.rs +++ b/src/libstd/slice.rs @@ -2919,10 +2919,10 @@ impl<T> Drop for MoveItems<T> { pub type RevMoveItems<T> = Rev<MoveItems<T>>; impl<A> FromIterator<A> for ~[A] { - fn from_iterator<T: Iterator<A>>(iterator: &mut T) -> ~[A] { + fn from_iterator<T: Iterator<A>>(mut iterator: T) -> ~[A] { let (lower, _) = iterator.size_hint(); let mut xs = with_capacity(lower); - for x in *iterator { + for x in iterator { xs.push(x); } xs @@ -2930,11 +2930,11 @@ impl<A> FromIterator<A> for ~[A] { } impl<A> Extendable<A> for ~[A] { - fn extend<T: Iterator<A>>(&mut self, iterator: &mut T) { + fn extend<T: Iterator<A>>(&mut self, mut iterator: T) { let (lower, _) = iterator.size_hint(); let len = self.len(); self.reserve_exact(len + lower); - for x in *iterator { + for x in iterator { self.push(x); } } diff --git a/src/libstd/str.rs b/src/libstd/str.rs index 4466439bcbd..fac4202217f 100644 --- a/src/libstd/str.rs +++ b/src/libstd/str.rs @@ -3019,7 +3019,7 @@ impl Clone for ~str { impl FromIterator<char> for ~str { #[inline] - fn from_iterator<T: Iterator<char>>(iterator: &mut T) -> ~str { + fn from_iterator<T: Iterator<char>>(iterator: T) -> ~str { let (lower, _) = iterator.size_hint(); let mut buf = with_capacity(lower); buf.extend(iterator); @@ -3029,11 +3029,11 @@ impl FromIterator<char> for ~str { impl Extendable<char> for ~str { #[inline] - fn extend<T: Iterator<char>>(&mut self, iterator: &mut T) { + fn extend<T: Iterator<char>>(&mut self, mut iterator: T) { let (lower, _) = iterator.size_hint(); let reserve = lower + self.len(); self.reserve(reserve); - for ch in *iterator { + for ch in iterator { self.push_char(ch) } } @@ -3219,7 +3219,7 @@ mod tests { let mut cpy = data.clone(); let other = "abc"; let mut it = other.chars(); - cpy.extend(&mut it); + cpy.extend(it); assert_eq!(cpy, data + other); } diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs index 5809fca9682..4454801c129 100644 --- a/src/libstd/vec.rs +++ b/src/libstd/vec.rs @@ -305,10 +305,10 @@ impl<T:Clone> Clone for Vec<T> { } impl<T> FromIterator<T> for Vec<T> { - fn from_iterator<I:Iterator<T>>(iterator: &mut I) -> Vec<T> { + fn from_iterator<I:Iterator<T>>(mut iterator: I) -> Vec<T> { let (lower, _) = iterator.size_hint(); let mut vector = Vec::with_capacity(lower); - for element in *iterator { + for element in iterator { vector.push(element) } vector @@ -316,10 +316,10 @@ impl<T> FromIterator<T> for Vec<T> { } impl<T> Extendable<T> for Vec<T> { - fn extend<I: Iterator<T>>(&mut self, iterator: &mut I) { + fn extend<I: Iterator<T>>(&mut self, mut iterator: I) { let (lower, _) = iterator.size_hint(); self.reserve_additional(lower); - for element in *iterator { + for element in iterator { self.push(element) } } @@ -1429,12 +1429,12 @@ mod tests { let mut v = Vec::new(); let mut w = Vec::new(); - v.extend(&mut range(0, 3)); + v.extend(range(0, 3)); for i in range(0, 3) { w.push(i) } assert_eq!(v, w); - v.extend(&mut range(3, 10)); + v.extend(range(3, 10)); for i in range(3, 10) { w.push(i) } assert_eq!(v, w); |
