From b5c29af02a88d0354ae1cbdabb41d481132f476e Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Mon, 28 Dec 2020 18:51:43 +0800 Subject: Special case underscore in mbe meta op --- crates/mbe/src/parser.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'crates/mbe/src/parser.rs') diff --git a/crates/mbe/src/parser.rs b/crates/mbe/src/parser.rs index c3fdd4040..d681905f5 100644 --- a/crates/mbe/src/parser.rs +++ b/crates/mbe/src/parser.rs @@ -101,8 +101,15 @@ fn next_op<'a>( Op::Repeat { subtree, separator, kind } } tt::TokenTree::Leaf(leaf) => match leaf { - tt::Leaf::Punct(_) => { - return Err(ExpandError::UnexpectedToken); + tt::Leaf::Punct(punct) => { + static UNDERSCORE: SmolStr = SmolStr::new_inline("_"); + + if punct.char != '_' { + return Err(ExpandError::UnexpectedToken); + } + let name = &UNDERSCORE; + let kind = eat_fragment_kind(src, mode)?; + Op::Var { name, kind } } tt::Leaf::Ident(ident) => { let name = &ident.text; -- cgit v1.2.3