diff --git a/src/expr.rs b/src/expr.rs
index 6579c7a..053aa7f 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1850,7 +1850,6 @@
             Macro {
                 path: what,
                 bang_token: bang,
-                ident: None,
                 tokens: vec![TokenTree(proc_macro2::TokenTree {
                     span: ((data.1).0).0,
                     kind: TokenNode::Group(Delimiter::Brace, data.0),
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 31e7e7a..620f02e 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -1712,6 +1712,7 @@
 pub fn fold_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro) -> ItemMacro {
     ItemMacro {
         attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
+        ident: _i . ident,
         mac: _visitor.fold_macro(_i . mac),
     }
 }
@@ -1842,7 +1843,6 @@
     Macro {
         path: _visitor.fold_path(_i . path),
         bang_token: _i . bang_token,
-        ident: _i . ident,
         tokens: _i . tokens,
     }
 }
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index 4b3019a..714abb0 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -1328,6 +1328,7 @@
 # [ cfg ( feature = "full" ) ]
 pub fn visit_item_macro<V: Visitor + ?Sized>(_visitor: &mut V, _i: &ItemMacro) {
     for it in (_i . attrs).iter() { _visitor.visit_attribute(&it) };
+    // Skipped field _i . ident;
     _visitor.visit_macro(&_i . mac);
 }
 # [ cfg ( feature = "full" ) ]
@@ -1436,7 +1437,6 @@
 pub fn visit_macro<V: Visitor + ?Sized>(_visitor: &mut V, _i: &Macro) {
     _visitor.visit_path(&_i . path);
     // Skipped field _i . bang_token;
-    // Skipped field _i . ident;
     // Skipped field _i . tokens;
 }
 
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index 45425fa..f6589e7 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -1328,6 +1328,7 @@
 # [ cfg ( feature = "full" ) ]
 pub fn visit_item_macro_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ItemMacro) {
     for mut it in (_i . attrs).iter_mut() { _visitor.visit_attribute_mut(&mut it) };
+    // Skipped field _i . ident;
     _visitor.visit_macro_mut(&mut _i . mac);
 }
 # [ cfg ( feature = "full" ) ]
@@ -1436,7 +1437,6 @@
 pub fn visit_macro_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut Macro) {
     _visitor.visit_path_mut(&mut _i . path);
     // Skipped field _i . bang_token;
-    // Skipped field _i . ident;
     // Skipped field _i . tokens;
 }
 
diff --git a/src/item.rs b/src/item.rs
index e8599b6..66087d5 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -184,6 +184,8 @@
         /// E.g. `macro_rules! foo { .. }` or `foo!(..)`
         pub Macro(ItemMacro {
             pub attrs: Vec<Attribute>,
+            /// The `example` in `macro_rules! example { ... }`.
+            pub ident: Option<Ident>,
             pub mac: Macro,
         }),
     }
@@ -483,10 +485,10 @@
         cond!(!body.is_braced(), syn!(Semi)) >>
         (ItemMacro {
             attrs: attrs,
+            ident: ident,
             mac: Macro {
                 path: what,
                 bang_token: bang,
-                ident: ident,
                 tokens: vec![body],
             },
         })
@@ -1504,7 +1506,7 @@
             tokens.append_all(self.attrs.outer());
             self.mac.path.to_tokens(tokens);
             self.mac.bang_token.to_tokens(tokens);
-            self.mac.ident.to_tokens(tokens);
+            self.ident.to_tokens(tokens);
             tokens.append_all(&self.mac.tokens);
             if !self.mac.is_braced() {
                 tokens::Semi::default().to_tokens(tokens);
diff --git a/src/mac.rs b/src/mac.rs
index ae55af9..4e59bc9 100644
--- a/src/mac.rs
+++ b/src/mac.rs
@@ -12,8 +12,6 @@
     pub struct Macro {
         pub path: Path,
         pub bang_token: tokens::Bang,
-        /// The `example` in `macro_rules! example { ... }`.
-        pub ident: Option<Ident>,
         pub tokens: Vec<TokenTree>,
     }
 }
@@ -146,7 +144,6 @@
             (Macro {
                 path: what,
                 bang_token: bang,
-                ident: None,
                 tokens: vec![body],
             })
         ));
@@ -177,7 +174,6 @@
         fn to_tokens(&self, tokens: &mut Tokens) {
             self.path.to_tokens(tokens);
             self.bang_token.to_tokens(tokens);
-            self.ident.to_tokens(tokens);
             tokens.append_all(&self.tokens);
         }
     }
