impl Extend<TokenStream> for TokenStream
This impl mirrors the second Extend impl in libproc_macro.
diff --git a/src/unstable.rs b/src/unstable.rs
index e024205..a5a48ad 100644
--- a/src/unstable.rs
+++ b/src/unstable.rs
@@ -61,6 +61,13 @@
TokenStream::Stable(_) => mismatch(),
}
}
+
+ fn unwrap_stable(self) -> stable::TokenStream {
+ match self {
+ TokenStream::Nightly(_) => mismatch(),
+ TokenStream::Stable(s) => s,
+ }
+ }
}
impl FromStr for TokenStream {
@@ -178,6 +185,19 @@
}
}
+impl Extend<TokenStream> for TokenStream {
+ fn extend<I: IntoIterator<Item = TokenStream>>(&mut self, streams: I) {
+ match self {
+ TokenStream::Nightly(tts) => {
+ tts.extend(streams.into_iter().map(|stream| stream.unwrap_nightly()))
+ }
+ TokenStream::Stable(tts) => {
+ tts.extend(streams.into_iter().map(|stream| stream.unwrap_stable()))
+ }
+ }
+ }
+}
+
impl fmt::Debug for TokenStream {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {