diff --git a/src/libcollections/string.rs b/src/libcollections/string.rs index 08ac64778bb02..5109261a50490 100644 --- a/src/libcollections/string.rs +++ b/src/libcollections/string.rs @@ -768,18 +768,27 @@ impl fmt::Display for FromUtf16Error { #[stable(feature = "rust1", since = "1.0.0")] impl FromIterator for String { - fn from_iter>(iter: I) -> String { + fn from_iter>(iterable: I) -> String { let mut buf = String::new(); - buf.extend(iter); + buf.extend(iterable); buf } } #[stable(feature = "rust1", since = "1.0.0")] impl<'a> FromIterator<&'a str> for String { - fn from_iter>(iter: I) -> String { + fn from_iter>(iterable: I) -> String { let mut buf = String::new(); - buf.extend(iter); + buf.extend(iterable); + buf + } +} + +#[stable(feature = "extend_string", since = "1.4.0")] +impl FromIterator for String { + fn from_iter>(iterable: I) -> String { + let mut buf = String::new(); + buf.extend(iterable); buf } } @@ -798,8 +807,8 @@ impl Extend for String { #[stable(feature = "extend_ref", since = "1.2.0")] impl<'a> Extend<&'a char> for String { - fn extend>(&mut self, iter: I) { - self.extend(iter.into_iter().cloned()); + fn extend>(&mut self, iterable: I) { + self.extend(iterable.into_iter().cloned()); } } @@ -812,6 +821,15 @@ impl<'a> Extend<&'a str> for String { } } +#[stable(feature = "extend_string", since = "1.4.0")] +impl Extend for String { + fn extend>(&mut self, iterable: I) { + for s in iterable { + self.push_str(&s) + } + } +} + /// A convenience impl that delegates to the impl for `&str` impl<'a, 'b> Pattern<'a> for &'b String { type Searcher = <&'b str as Pattern<'a>>::Searcher;