Support parsing the auto trait syntax
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index a660945..a03ed31 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -1764,6 +1764,7 @@
         attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
         vis: _visitor.fold_visibility(_i . vis),
         unsafety: _visitor.fold_unsafety(_i . unsafety),
+        auto_token: _i . auto_token,
         trait_token: _i . trait_token,
         ident: _i . ident,
         generics: _visitor.fold_generics(_i . generics),
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index b4e88d9..b311a89 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -1370,6 +1370,7 @@
     for it in (_i . attrs).iter() { _visitor.visit_attribute(&it) };
     _visitor.visit_visibility(&_i . vis);
     _visitor.visit_unsafety(&_i . unsafety);
+    // Skipped field _i . auto_token;
     // Skipped field _i . trait_token;
     // Skipped field _i . ident;
     _visitor.visit_generics(&_i . generics);
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index a3034c2..0d75bc7 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -1370,6 +1370,7 @@
     for mut it in (_i . attrs).iter_mut() { _visitor.visit_attribute_mut(&mut it) };
     _visitor.visit_visibility_mut(&mut _i . vis);
     _visitor.visit_unsafety_mut(&mut _i . unsafety);
+    // Skipped field _i . auto_token;
     // Skipped field _i . trait_token;
     // Skipped field _i . ident;
     _visitor.visit_generics_mut(&mut _i . generics);
diff --git a/src/item.rs b/src/item.rs
index ff36380..194a1ec 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -143,6 +143,7 @@
             pub attrs: Vec<Attribute>,
             pub vis: Visibility,
             pub unsafety: Unsafety,
+            pub auto_token: Option<Token![auto]>,
             pub trait_token: Token![trait],
             pub ident: Ident,
             pub generics: Generics,
@@ -966,6 +967,7 @@
         attrs: many0!(call!(Attribute::parse_outer)) >>
         vis: syn!(Visibility) >>
         unsafety: syn!(Unsafety) >>
+        auto_: option!(keyword!(auto)) >>
         trait_: keyword!(trait) >>
         ident: syn!(Ident) >>
         generics: syn!(Generics) >>
@@ -979,6 +981,7 @@
             attrs: attrs,
             vis: vis,
             unsafety: unsafety,
+            auto_token: auto_,
             trait_token: trait_,
             ident: ident,
             generics: Generics {
@@ -1478,6 +1481,7 @@
             tokens.append_all(self.attrs.outer());
             self.vis.to_tokens(tokens);
             self.unsafety.to_tokens(tokens);
+            self.auto_token.to_tokens(tokens);
             self.trait_token.to_tokens(tokens);
             self.ident.to_tokens(tokens);
             self.generics.to_tokens(tokens);