Only item macros can have an ident
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);
         }
     }