diff --git a/crates/mbe/src/expander/matcher.rs b/crates/mbe/src/expander/matcher.rs index 910724411d4..074407ea74b 100644 --- a/crates/mbe/src/expander/matcher.rs +++ b/crates/mbe/src/expander/matcher.rs @@ -697,6 +697,7 @@ fn match_meta_var(kind: &str, input: &mut TtIter) -> ExpandResult<Option<Fragmen "block" => parser::PrefixEntryPoint::Block, "meta" => parser::PrefixEntryPoint::MetaItem, "item" => parser::PrefixEntryPoint::Item, + "vis" => parser::PrefixEntryPoint::Vis, "expr" => { return input .expect_fragment(parser::PrefixEntryPoint::Expr) @@ -728,8 +729,6 @@ fn match_meta_var(kind: &str, input: &mut TtIter) -> ExpandResult<Option<Fragmen }) .map_err(|()| err!()) } - // `vis` is optional - "vis" => Ok(input.expect_fragment(parser::PrefixEntryPoint::Vis).value), _ => Err(ExpandError::UnexpectedToken), }; return tt_result.map(|it| it.map(Fragment::Tokens)).into(); diff --git a/crates/mbe/src/tt_iter.rs b/crates/mbe/src/tt_iter.rs index 172916c5a14..9d2b1da9abd 100644 --- a/crates/mbe/src/tt_iter.rs +++ b/crates/mbe/src/tt_iter.rs @@ -114,7 +114,7 @@ impl<'a> TtIter<'a> { } } - let mut err = if !cursor.is_root() || error { + let err = if error || !cursor.is_root() { Some(err!("expected {:?}", entry_point)) } else { None @@ -132,9 +132,6 @@ impl<'a> TtIter<'a> { } } self.inner = self.inner.as_slice()[res.len()..].iter(); - if res.is_empty() && err.is_none() { - err = Some(err!("no tokens consumed")); - } let res = match res.len() { 1 => Some(res[0].cloned()), 0 => None,