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);
}
}