expand: Do not count metavar declarations on RHS of macro_rules
They are 0 by definition there.
This commit is contained in:
parent
03314912f1
commit
9ab4f732cb
2 changed files with 10 additions and 15 deletions
|
@ -263,18 +263,12 @@ crate type NamedParseResult = ParseResult<FxHashMap<MacroRulesNormalizedIdent, N
|
|||
pub(super) fn count_metavar_decls(matcher: &[TokenTree]) -> usize {
|
||||
matcher
|
||||
.iter()
|
||||
.map(|tt| {
|
||||
match tt {
|
||||
TokenTree::Delimited(_, delim) => count_metavar_decls(delim.inner_tts()),
|
||||
TokenTree::MetaVar(..) => 0,
|
||||
TokenTree::MetaVarDecl(..) => 1,
|
||||
// RHS meta-variable expressions eventually end-up here. `0` is returned to inform
|
||||
// that no meta-variable was found, because "meta-variables" != "meta-variable
|
||||
// expressions".
|
||||
TokenTree::MetaVarExpr(..) => 0,
|
||||
TokenTree::Sequence(_, seq) => seq.num_captures,
|
||||
TokenTree::Token(..) => 0,
|
||||
}
|
||||
.map(|tt| match tt {
|
||||
TokenTree::MetaVarDecl(..) => 1,
|
||||
TokenTree::Sequence(_, seq) => seq.num_captures,
|
||||
TokenTree::Delimited(_, delim) => count_metavar_decls(delim.inner_tts()),
|
||||
TokenTree::Token(..) => 0,
|
||||
TokenTree::MetaVar(..) | TokenTree::MetaVarExpr(..) => unreachable!(),
|
||||
})
|
||||
.sum()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue