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 {