diff options
| author | Alexis <a.beingessner@gmail.com> | 2015-02-18 13:06:21 -0500 |
|---|---|---|
| committer | Alexis <a.beingessner@gmail.com> | 2015-02-18 14:01:47 -0500 |
| commit | 66613e26b95438c02e2f5c273c557515454121f7 (patch) | |
| tree | ed2b84cfeb042660366256e38010adb0eb5bc272 /src/libstd | |
| parent | 4a9d190423f67a00053f4b5c9869f0ccbdfcc689 (diff) | |
| download | rust-66613e26b95438c02e2f5c273c557515454121f7.tar.gz rust-66613e26b95438c02e2f5c273c557515454121f7.zip | |
make FromIterator use IntoIterator
This breaks all implementors of FromIterator, as they must now accept IntoIterator instead of Iterator. The fix for this is generally trivial (change the bound, and maybe call into_iter() on the argument to get the old argument). Users of FromIterator should be unaffected because Iterators are IntoIterator. [breaking-change]
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/collections/hash/map.rs | 3 | ||||
| -rw-r--r-- | src/libstd/collections/hash/set.rs | 3 | ||||
| -rwxr-xr-x | src/libstd/path.rs | 2 | ||||
| -rw-r--r-- | src/libstd/sys/common/wtf8.rs | 4 |
4 files changed, 7 insertions, 5 deletions
diff --git a/src/libstd/collections/hash/map.rs b/src/libstd/collections/hash/map.rs index 61b531054a0..0ce5b164ca1 100644 --- a/src/libstd/collections/hash/map.rs +++ b/src/libstd/collections/hash/map.rs @@ -1555,7 +1555,8 @@ impl<K, V, S, H> FromIterator<(K, V)> for HashMap<K, V, S> S: HashState<Hasher=H> + Default, H: hash::Hasher<Output=u64> { - fn from_iter<T: Iterator<Item=(K, V)>>(iter: T) -> HashMap<K, V, S> { + fn from_iter<T: IntoIterator<Item=(K, V)>>(iterable: T) -> HashMap<K, V, S> { + let iter = iterable.into_iter(); let lower = iter.size_hint().0; let mut map = HashMap::with_capacity_and_hash_state(lower, Default::default()); diff --git a/src/libstd/collections/hash/set.rs b/src/libstd/collections/hash/set.rs index f5e57b78d2a..593248fd5c6 100644 --- a/src/libstd/collections/hash/set.rs +++ b/src/libstd/collections/hash/set.rs @@ -622,7 +622,8 @@ impl<T, S, H> FromIterator<T> for HashSet<T, S> S: HashState<Hasher=H> + Default, H: hash::Hasher<Output=u64> { - fn from_iter<I: Iterator<Item=T>>(iter: I) -> HashSet<T, S> { + fn from_iter<I: IntoIterator<Item=T>>(iterable: I) -> HashSet<T, S> { + let iter = iterable.into_iter(); let lower = iter.size_hint().0; let mut set = HashSet::with_capacity_and_hash_state(lower, Default::default()); set.extend(iter); diff --git a/src/libstd/path.rs b/src/libstd/path.rs index f25cc83b93e..2ad07462f20 100755 --- a/src/libstd/path.rs +++ b/src/libstd/path.rs @@ -953,7 +953,7 @@ impl PathBuf { } impl<'a, P: ?Sized + 'a> iter::FromIterator<&'a P> for PathBuf where P: AsPath { - fn from_iter<I: Iterator<Item = &'a P>>(iter: I) -> PathBuf { + fn from_iter<I: IntoIterator<Item = &'a P>>(iter: I) -> PathBuf { let mut buf = PathBuf::new(""); buf.extend(iter); buf diff --git a/src/libstd/sys/common/wtf8.rs b/src/libstd/sys/common/wtf8.rs index e7cb67c6287..da5ab8e434a 100644 --- a/src/libstd/sys/common/wtf8.rs +++ b/src/libstd/sys/common/wtf8.rs @@ -356,9 +356,9 @@ impl Wtf8Buf { /// This replaces surrogate code point pairs with supplementary code points, /// like concatenating ill-formed UTF-16 strings effectively would. impl FromIterator<CodePoint> for Wtf8Buf { - fn from_iter<T: Iterator<Item=CodePoint>>(iterator: T) -> Wtf8Buf { + fn from_iter<T: IntoIterator<Item=CodePoint>>(iter: T) -> Wtf8Buf { let mut string = Wtf8Buf::new(); - string.extend(iterator); + string.extend(iter); string } } |
