Update to the next version of proc-macro2

Depends on dtolnay/quote#73
Depends on alexcrichton/proc-macro2#90
Depends on a new nightly
diff --git a/src/expr.rs b/src/expr.rs
index 339e29e..8d94863 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -7,7 +7,7 @@
 // except according to those terms.
 
 use super::*;
-use proc_macro2::{Span, TokenStream};
+use proc_macro2::{Span, TokenStream, Ident};
 use punctuated::Punctuated;
 #[cfg(feature = "extra-traits")]
 use std::hash::{Hash, Hasher};
@@ -2178,7 +2178,7 @@
                 tuple!(syn!(Member), map!(punct!(:), Some), syn!(Expr))
                 |
                 map!(syn!(Ident), |name| (
-                    Member::Named(name),
+                    Member::Named(name.clone()),
                     None,
                     Expr::Path(ExprPath {
                         attrs: Vec::new(),
@@ -2583,7 +2583,7 @@
                     let mut pat: Pat = PatIdent {
                         by_ref: by_ref,
                         mutability: mutability,
-                        ident: ident,
+                        ident: ident.clone(),
                         subpat: None,
                     }.into();
                     if let Some(boxed) = boxed {
@@ -2821,13 +2821,13 @@
     use super::*;
     #[cfg(feature = "full")]
     use attr::FilterAttrs;
-    use proc_macro2::Literal;
-    use quote::{ToTokens, Tokens};
+    use proc_macro2::{Literal, TokenStream};
+    use quote::{ToTokens, TokenStreamExt};
 
     // If the given expression is a bare `ExprStruct`, wraps it in parenthesis
     // before appending it to `Tokens`.
     #[cfg(feature = "full")]
-    fn wrap_bare_struct(tokens: &mut Tokens, e: &Expr) {
+    fn wrap_bare_struct(tokens: &mut TokenStream, e: &Expr) {
         if let Expr::Struct(_) = *e {
             token::Paren::default().surround(tokens, |tokens| {
                 e.to_tokens(tokens);
@@ -2838,16 +2838,16 @@
     }
 
     #[cfg(feature = "full")]
-    fn attrs_to_tokens(attrs: &[Attribute], tokens: &mut Tokens) {
+    fn attrs_to_tokens(attrs: &[Attribute], tokens: &mut TokenStream) {
         tokens.append_all(attrs.outer());
     }
 
     #[cfg(not(feature = "full"))]
-    fn attrs_to_tokens(_attrs: &[Attribute], _tokens: &mut Tokens) {}
+    fn attrs_to_tokens(_attrs: &[Attribute], _tokens: &mut TokenStream) {}
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprBox {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.box_token.to_tokens(tokens);
             self.expr.to_tokens(tokens);
@@ -2856,7 +2856,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprInPlace {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.place.to_tokens(tokens);
             self.arrow_token.to_tokens(tokens);
@@ -2866,7 +2866,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprArray {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.bracket_token.surround(tokens, |tokens| {
                 self.elems.to_tokens(tokens);
@@ -2875,7 +2875,7 @@
     }
 
     impl ToTokens for ExprCall {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.func.to_tokens(tokens);
             self.paren_token.surround(tokens, |tokens| {
@@ -2886,7 +2886,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprMethodCall {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.receiver.to_tokens(tokens);
             self.dot_token.to_tokens(tokens);
@@ -2900,7 +2900,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for MethodTurbofish {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.colon2_token.to_tokens(tokens);
             self.lt_token.to_tokens(tokens);
             self.args.to_tokens(tokens);
@@ -2910,7 +2910,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for GenericMethodArgument {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             match *self {
                 GenericMethodArgument::Type(ref t) => t.to_tokens(tokens),
                 GenericMethodArgument::Const(ref c) => c.to_tokens(tokens),
@@ -2920,7 +2920,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprTuple {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.paren_token.surround(tokens, |tokens| {
                 self.elems.to_tokens(tokens);
@@ -2934,7 +2934,7 @@
     }
 
     impl ToTokens for ExprBinary {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.left.to_tokens(tokens);
             self.op.to_tokens(tokens);
@@ -2943,7 +2943,7 @@
     }
 
     impl ToTokens for ExprUnary {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.op.to_tokens(tokens);
             self.expr.to_tokens(tokens);
@@ -2951,14 +2951,14 @@
     }
 
     impl ToTokens for ExprLit {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.lit.to_tokens(tokens);
         }
     }
 
     impl ToTokens for ExprCast {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.expr.to_tokens(tokens);
             self.as_token.to_tokens(tokens);
@@ -2968,7 +2968,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprType {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.expr.to_tokens(tokens);
             self.colon_token.to_tokens(tokens);
@@ -2977,7 +2977,7 @@
     }
 
     #[cfg(feature = "full")]
-    fn maybe_wrap_else(tokens: &mut Tokens, else_: &Option<(Token![else], Box<Expr>)>) {
+    fn maybe_wrap_else(tokens: &mut TokenStream, else_: &Option<(Token![else], Box<Expr>)>) {
         if let Some((ref else_token, ref else_)) = *else_ {
             else_token.to_tokens(tokens);
 
@@ -2998,7 +2998,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprIf {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.if_token.to_tokens(tokens);
             wrap_bare_struct(tokens, &self.cond);
@@ -3009,7 +3009,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprIfLet {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.if_token.to_tokens(tokens);
             self.let_token.to_tokens(tokens);
@@ -3023,7 +3023,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprWhile {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.label.to_tokens(tokens);
             self.while_token.to_tokens(tokens);
@@ -3034,7 +3034,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprWhileLet {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.label.to_tokens(tokens);
             self.while_token.to_tokens(tokens);
@@ -3048,7 +3048,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprForLoop {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.label.to_tokens(tokens);
             self.for_token.to_tokens(tokens);
@@ -3061,7 +3061,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprLoop {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.label.to_tokens(tokens);
             self.loop_token.to_tokens(tokens);
@@ -3071,7 +3071,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprMatch {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.match_token.to_tokens(tokens);
             wrap_bare_struct(tokens, &self.expr);
@@ -3091,7 +3091,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprCatch {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.do_token.to_tokens(tokens);
             self.catch_token.to_tokens(tokens);
@@ -3101,7 +3101,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprYield {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.yield_token.to_tokens(tokens);
             self.expr.to_tokens(tokens);
@@ -3110,7 +3110,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprClosure {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.movability.to_tokens(tokens);
             self.capture.to_tokens(tokens);
@@ -3136,7 +3136,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprUnsafe {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.unsafe_token.to_tokens(tokens);
             self.block.to_tokens(tokens);
@@ -3145,7 +3145,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprBlock {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.block.to_tokens(tokens);
         }
@@ -3153,7 +3153,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprAssign {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.left.to_tokens(tokens);
             self.eq_token.to_tokens(tokens);
@@ -3163,7 +3163,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprAssignOp {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.left.to_tokens(tokens);
             self.op.to_tokens(tokens);
@@ -3173,7 +3173,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprField {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.base.to_tokens(tokens);
             self.dot_token.to_tokens(tokens);
@@ -3182,16 +3182,16 @@
     }
 
     impl ToTokens for Member {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             match *self {
-                Member::Named(ident) => ident.to_tokens(tokens),
+                Member::Named(ref ident) => ident.to_tokens(tokens),
                 Member::Unnamed(ref index) => index.to_tokens(tokens),
             }
         }
     }
 
     impl ToTokens for Index {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             let mut lit = Literal::i64_unsuffixed(i64::from(self.index));
             lit.set_span(self.span);
             tokens.append(lit);
@@ -3199,7 +3199,7 @@
     }
 
     impl ToTokens for ExprIndex {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.expr.to_tokens(tokens);
             self.bracket_token.surround(tokens, |tokens| {
@@ -3210,7 +3210,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprRange {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.from.to_tokens(tokens);
             match self.limits {
@@ -3222,7 +3222,7 @@
     }
 
     impl ToTokens for ExprPath {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             ::PathTokens(&self.qself, &self.path).to_tokens(tokens)
         }
@@ -3230,7 +3230,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprReference {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.and_token.to_tokens(tokens);
             self.mutability.to_tokens(tokens);
@@ -3240,7 +3240,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprBreak {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.break_token.to_tokens(tokens);
             self.label.to_tokens(tokens);
@@ -3250,7 +3250,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprContinue {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.continue_token.to_tokens(tokens);
             self.label.to_tokens(tokens);
@@ -3259,7 +3259,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprReturn {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.return_token.to_tokens(tokens);
             self.expr.to_tokens(tokens);
@@ -3268,7 +3268,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprMacro {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.mac.to_tokens(tokens);
         }
@@ -3276,7 +3276,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprStruct {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.path.to_tokens(tokens);
             self.brace_token.surround(tokens, |tokens| {
@@ -3291,7 +3291,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprRepeat {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.bracket_token.surround(tokens, |tokens| {
                 self.expr.to_tokens(tokens);
@@ -3303,7 +3303,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprGroup {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.group_token.surround(tokens, |tokens| {
                 self.expr.to_tokens(tokens);
@@ -3312,7 +3312,7 @@
     }
 
     impl ToTokens for ExprParen {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             attrs_to_tokens(&self.attrs, tokens);
             self.paren_token.surround(tokens, |tokens| {
                 self.expr.to_tokens(tokens);
@@ -3322,7 +3322,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for ExprTry {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.expr.to_tokens(tokens);
             self.question_token.to_tokens(tokens);
@@ -3330,14 +3330,14 @@
     }
 
     impl ToTokens for ExprVerbatim {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.tts.to_tokens(tokens);
         }
     }
 
     #[cfg(feature = "full")]
     impl ToTokens for Label {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.name.to_tokens(tokens);
             self.colon_token.to_tokens(tokens);
         }
@@ -3345,7 +3345,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for FieldValue {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.member.to_tokens(tokens);
             if let Some(ref colon_token) = self.colon_token {
@@ -3357,7 +3357,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for Arm {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(&self.attrs);
             self.leading_vert.to_tokens(tokens);
             self.pats.to_tokens(tokens);
@@ -3373,14 +3373,14 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatWild {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.underscore_token.to_tokens(tokens);
         }
     }
 
     #[cfg(feature = "full")]
     impl ToTokens for PatIdent {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.by_ref.to_tokens(tokens);
             self.mutability.to_tokens(tokens);
             self.ident.to_tokens(tokens);
@@ -3393,7 +3393,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatStruct {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.path.to_tokens(tokens);
             self.brace_token.surround(tokens, |tokens| {
                 self.fields.to_tokens(tokens);
@@ -3408,7 +3408,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatTupleStruct {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.path.to_tokens(tokens);
             self.pat.to_tokens(tokens);
         }
@@ -3416,14 +3416,14 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatPath {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             ::PathTokens(&self.qself, &self.path).to_tokens(tokens);
         }
     }
 
     #[cfg(feature = "full")]
     impl ToTokens for PatTuple {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.paren_token.surround(tokens, |tokens| {
                 self.front.to_tokens(tokens);
                 if let Some(ref dot2_token) = self.dot2_token {
@@ -3445,7 +3445,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatBox {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.box_token.to_tokens(tokens);
             self.pat.to_tokens(tokens);
         }
@@ -3453,7 +3453,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatRef {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.and_token.to_tokens(tokens);
             self.mutability.to_tokens(tokens);
             self.pat.to_tokens(tokens);
@@ -3462,14 +3462,14 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatLit {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.expr.to_tokens(tokens);
         }
     }
 
     #[cfg(feature = "full")]
     impl ToTokens for PatRange {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.lo.to_tokens(tokens);
             match self.limits {
                 RangeLimits::HalfOpen(ref t) => t.to_tokens(tokens),
@@ -3481,7 +3481,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatSlice {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             // XXX: This is a mess, and it will be so easy to screw it up. How
             // do we make this correct itself better?
             self.bracket_token.surround(tokens, |tokens| {
@@ -3516,21 +3516,21 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for PatMacro {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.mac.to_tokens(tokens);
         }
     }
 
     #[cfg(feature = "full")]
     impl ToTokens for PatVerbatim {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.tts.to_tokens(tokens);
         }
     }
 
     #[cfg(feature = "full")]
     impl ToTokens for FieldPat {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             if let Some(ref colon_token) = self.colon_token {
                 self.member.to_tokens(tokens);
                 colon_token.to_tokens(tokens);
@@ -3541,7 +3541,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for Block {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             self.brace_token.surround(tokens, |tokens| {
                 tokens.append_all(&self.stmts);
             });
@@ -3550,7 +3550,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for Stmt {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             match *self {
                 Stmt::Local(ref local) => local.to_tokens(tokens),
                 Stmt::Item(ref item) => item.to_tokens(tokens),
@@ -3565,7 +3565,7 @@
 
     #[cfg(feature = "full")]
     impl ToTokens for Local {
-        fn to_tokens(&self, tokens: &mut Tokens) {
+        fn to_tokens(&self, tokens: &mut TokenStream) {
             tokens.append_all(self.attrs.outer());
             self.let_token.to_tokens(tokens);
             self.pats.to_tokens(tokens);