about summary refs log tree commit diff
path: root/src/libproc_macro
diff options
context:
space:
mode:
authorDavid Tolnay <dtolnay@gmail.com>2018-08-12 12:45:48 -0700
committerDavid Tolnay <dtolnay@gmail.com>2018-08-12 22:45:32 -0700
commit2fa1da991945b2c2d3b36241492f7e8280869fd0 (patch)
tree227a54b4bc56f4e20e3b846e721d881a9093a824 /src/libproc_macro
parent0aa8d0320266b5579428312095fe49af05ada972 (diff)
downloadrust-2fa1da991945b2c2d3b36241492f7e8280869fd0.tar.gz
rust-2fa1da991945b2c2d3b36241492f7e8280869fd0.zip
TokenStream::extend
Diffstat (limited to 'src/libproc_macro')
-rw-r--r--src/libproc_macro/lib.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libproc_macro/lib.rs b/src/libproc_macro/lib.rs
index bf6e4a3aaa4..21c80e14a37 100644
--- a/src/libproc_macro/lib.rs
+++ b/src/libproc_macro/lib.rs
@@ -179,6 +179,20 @@ impl iter::FromIterator<TokenStream> for TokenStream {
     }
 }
 
+#[stable(feature = "token_stream_extend", since = "1.30.0")]
+impl Extend<TokenTree> for TokenStream {
+    fn extend<I: IntoIterator<Item = TokenTree>>(&mut self, trees: I) {
+        self.extend(trees.into_iter().map(TokenStream::from));
+    }
+}
+
+#[stable(feature = "token_stream_extend", since = "1.30.0")]
+impl Extend<TokenStream> for TokenStream {
+    fn extend<I: IntoIterator<Item = TokenStream>>(&mut self, streams: I) {
+        self.0.extend(streams.into_iter().map(|stream| stream.0));
+    }
+}
+
 /// Public implementation details for the `TokenStream` type, such as iterators.
 #[stable(feature = "proc_macro_lib2", since = "1.29.0")]
 pub mod token_stream {