Switch to TokenStream::extend
diff --git a/codegen/src/fold.rs b/codegen/src/fold.rs
index d1e1e54..f5b7753 100644
--- a/codegen/src/fold.rs
+++ b/codegen/src/fold.rs
@@ -1,6 +1,6 @@
 use crate::{file, full, gen};
 use proc_macro2::{Ident, Span, TokenStream};
-use quote::{quote, TokenStreamExt};
+use quote::quote;
 use syn::Index;
 use syn_codegen::{Data, Definitions, Features, Node, Type};
 
@@ -60,8 +60,8 @@
                 let i = Index::from(i);
                 let it = quote!((#name).#i);
                 let val = visit(elem, features, defs, &it).unwrap_or(it);
-                code.append_all(val);
-                code.append_all(quote!(,));
+                code.extend(val);
+                code.extend(quote!(,));
             }
             Some(quote! {
                 (#code)
@@ -127,7 +127,7 @@
                 let variant_ident = Ident::new(variant, Span::call_site());
 
                 if fields.is_empty() {
-                    fold_variants.append_all(quote! {
+                    fold_variants.extend(quote! {
                         #ty::#variant_ident => {
                             #ty::#variant_ident
                         }
@@ -140,20 +140,20 @@
                         let name = format!("_binding_{}", idx);
                         let binding = Ident::new(&name, Span::call_site());
 
-                        bind_fold_fields.append_all(quote! {
+                        bind_fold_fields.extend(quote! {
                             #binding,
                         });
 
                         let owned_binding = quote!(#binding);
 
-                        fold_fields.append_all(
+                        fold_fields.extend(
                             visit(ty, &s.features, defs, &owned_binding).unwrap_or(owned_binding),
                         );
 
-                        fold_fields.append_all(quote!(,));
+                        fold_fields.extend(quote!(,));
                     }
 
-                    fold_variants.append_all(quote! {
+                    fold_variants.extend(quote! {
                         #ty::#variant_ident(#bind_fold_fields) => {
                             #ty::#variant_ident(
                                 #fold_fields
@@ -163,7 +163,7 @@
                 }
             }
 
-            fold_impl.append_all(quote! {
+            fold_impl.extend(quote! {
                 match _i {
                     #fold_variants
                 }
@@ -177,39 +177,39 @@
                 let ref_toks = quote!(_i.#id);
                 let fold = visit(&ty, &s.features, defs, &ref_toks).unwrap_or(ref_toks);
 
-                fold_fields.append_all(quote! {
+                fold_fields.extend(quote! {
                     #id: #fold,
                 });
             }
 
             if !fields.is_empty() {
-                fold_impl.append_all(quote! {
+                fold_impl.extend(quote! {
                     #ty {
                         #fold_fields
                     }
                 })
             } else {
                 if ty == "Ident" {
-                    fold_impl.append_all(quote! {
+                    fold_impl.extend(quote! {
                         let mut _i = _i;
                         let span = _visitor.fold_span(_i.span());
                         _i.set_span(span);
                     });
                 }
-                fold_impl.append_all(quote! {
+                fold_impl.extend(quote! {
                     _i
                 });
             }
         }
         Data::Private => {
             if ty == "Ident" {
-                fold_impl.append_all(quote! {
+                fold_impl.extend(quote! {
                     let mut _i = _i;
                     let span = _visitor.fold_span(_i.span());
                     _i.set_span(span);
                 });
             }
-            fold_impl.append_all(quote! {
+            fold_impl.extend(quote! {
                 _i
             });
         }
@@ -220,7 +220,7 @@
         Data::Struct(_) | Data::Enum(_) => true,
     };
 
-    state.fold_trait.append_all(quote! {
+    state.fold_trait.extend(quote! {
         #features
         fn #fold_fn(&mut self, i: #ty) -> #ty {
             #fold_fn(self, i)
@@ -228,7 +228,7 @@
     });
 
     if include_fold_impl {
-        state.fold_impl.append_all(quote! {
+        state.fold_impl.extend(quote! {
             #features
             pub fn #fold_fn<V: Fold + ?Sized>(
                 _visitor: &mut V, _i: #ty
diff --git a/codegen/src/visit.rs b/codegen/src/visit.rs
index 7300220..2a18244 100644
--- a/codegen/src/visit.rs
+++ b/codegen/src/visit.rs
@@ -1,7 +1,7 @@
 use crate::operand::{Borrowed, Operand, Owned};
 use crate::{file, full, gen};
 use proc_macro2::{Ident, Span, TokenStream};
-use quote::{quote, TokenStreamExt};
+use quote::quote;
 use syn::Index;
 use syn_codegen::{Data, Definitions, Features, Node, Type};
 
@@ -78,8 +78,8 @@
                 let i = Index::from(i);
                 let it = Owned(quote!((#name).#i));
                 let val = visit(elem, features, defs, &it).unwrap_or_else(|| noop_visit(&it));
-                code.append_all(val);
-                code.append_all(quote!(;));
+                code.extend(val);
+                code.extend(quote!(;));
             }
             Some(code)
         }
@@ -143,7 +143,7 @@
                 let variant_ident = Ident::new(variant, Span::call_site());
 
                 if fields.is_empty() {
-                    visit_variants.append_all(quote! {
+                    visit_variants.extend(quote! {
                         #ty::#variant_ident => {}
                     });
                 } else {
@@ -154,21 +154,21 @@
                         let name = format!("_binding_{}", idx);
                         let binding = Ident::new(&name, Span::call_site());
 
-                        bind_visit_fields.append_all(quote! {
+                        bind_visit_fields.extend(quote! {
                             ref #binding,
                         });
 
                         let borrowed_binding = Borrowed(quote!(#binding));
 
-                        visit_fields.append_all(
+                        visit_fields.extend(
                             visit(ty, &s.features, defs, &borrowed_binding)
                                 .unwrap_or_else(|| noop_visit(&borrowed_binding)),
                         );
 
-                        visit_fields.append_all(quote!(;));
+                        visit_fields.extend(quote!(;));
                     }
 
-                    visit_variants.append_all(quote! {
+                    visit_variants.extend(quote! {
                         #ty::#variant_ident(#bind_visit_fields) => {
                             #visit_fields
                         }
@@ -176,7 +176,7 @@
                 }
             }
 
-            visit_impl.append_all(quote! {
+            visit_impl.extend(quote! {
                 match *_i {
                     #visit_variants
                 }
@@ -188,7 +188,7 @@
                 let ref_toks = Owned(quote!(_i.#id));
                 let visit_field = visit(&ty, &s.features, defs, &ref_toks)
                     .unwrap_or_else(|| noop_visit(&ref_toks));
-                visit_impl.append_all(quote! {
+                visit_impl.extend(quote! {
                     #visit_field;
                 });
             }
@@ -196,14 +196,14 @@
         Data::Private => {}
     }
 
-    state.visit_trait.append_all(quote! {
+    state.visit_trait.extend(quote! {
         #features
         fn #visit_fn(&mut self, i: &'ast #ty) {
             #visit_fn(self, i)
         }
     });
 
-    state.visit_impl.append_all(quote! {
+    state.visit_impl.extend(quote! {
         #features
         pub fn #visit_fn<'ast, V: Visit<'ast> + ?Sized>(
             _visitor: &mut V, _i: &'ast #ty
diff --git a/codegen/src/visit_mut.rs b/codegen/src/visit_mut.rs
index 4f0165c..25c98ef 100644
--- a/codegen/src/visit_mut.rs
+++ b/codegen/src/visit_mut.rs
@@ -1,7 +1,7 @@
 use crate::operand::{Borrowed, Operand, Owned};
 use crate::{file, full, gen};
 use proc_macro2::{Ident, Span, TokenStream};
-use quote::{quote, TokenStreamExt};
+use quote::quote;
 use syn::Index;
 use syn_codegen::{Data, Definitions, Features, Node, Type};
 
@@ -78,8 +78,8 @@
                 let i = Index::from(i);
                 let it = Owned(quote!((#name).#i));
                 let val = visit(elem, features, defs, &it).unwrap_or_else(|| noop_visit(&it));
-                code.append_all(val);
-                code.append_all(quote!(;));
+                code.extend(val);
+                code.extend(quote!(;));
             }
             Some(code)
         }
@@ -143,7 +143,7 @@
                 let variant_ident = Ident::new(variant, Span::call_site());
 
                 if fields.is_empty() {
-                    visit_mut_variants.append_all(quote! {
+                    visit_mut_variants.extend(quote! {
                         #ty::#variant_ident => {}
                     });
                 } else {
@@ -154,21 +154,21 @@
                         let name = format!("_binding_{}", idx);
                         let binding = Ident::new(&name, Span::call_site());
 
-                        bind_visit_mut_fields.append_all(quote! {
+                        bind_visit_mut_fields.extend(quote! {
                             ref mut #binding,
                         });
 
                         let borrowed_binding = Borrowed(quote!(#binding));
 
-                        visit_mut_fields.append_all(
+                        visit_mut_fields.extend(
                             visit(ty, &s.features, defs, &borrowed_binding)
                                 .unwrap_or_else(|| noop_visit(&borrowed_binding)),
                         );
 
-                        visit_mut_fields.append_all(quote!(;));
+                        visit_mut_fields.extend(quote!(;));
                     }
 
-                    visit_mut_variants.append_all(quote! {
+                    visit_mut_variants.extend(quote! {
                         #ty::#variant_ident(#bind_visit_mut_fields) => {
                             #visit_mut_fields
                         }
@@ -176,7 +176,7 @@
                 }
             }
 
-            visit_mut_impl.append_all(quote! {
+            visit_mut_impl.extend(quote! {
                 match *_i {
                     #visit_mut_variants
                 }
@@ -188,7 +188,7 @@
                 let ref_toks = Owned(quote!(_i.#id));
                 let visit_mut_field = visit(&ty, &s.features, defs, &ref_toks)
                     .unwrap_or_else(|| noop_visit(&ref_toks));
-                visit_mut_impl.append_all(quote! {
+                visit_mut_impl.extend(quote! {
                     #visit_mut_field;
                 });
             }
@@ -196,14 +196,14 @@
         Data::Private => {}
     }
 
-    state.visit_mut_trait.append_all(quote! {
+    state.visit_mut_trait.extend(quote! {
         #features
         fn #visit_mut_fn(&mut self, i: &mut #ty) {
             #visit_mut_fn(self, i)
         }
     });
 
-    state.visit_mut_impl.append_all(quote! {
+    state.visit_mut_impl.extend(quote! {
         #features
         pub fn #visit_mut_fn<V: VisitMut + ?Sized>(
             _visitor: &mut V, _i: &mut #ty