diff options
| author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2022-01-03 13:28:56 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-03 13:28:56 +0000 |
| commit | 120d76e0a3bd72dc70186830e0a1ca51cee5ac8b (patch) | |
| tree | d0f990ec3c0c09a8168fe08d957875f9a7c45aee | |
| parent | 29fc022d851bb7b11e30acc3df6d3d425b104821 (diff) | |
| parent | 303814189aabefd963c838d86dc922a9828df6d0 (diff) | |
| download | rust-120d76e0a3bd72dc70186830e0a1ca51cee5ac8b.tar.gz rust-120d76e0a3bd72dc70186830e0a1ca51cee5ac8b.zip | |
Merge #11179
11179: minor: simplify mbe matcher r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
| -rw-r--r-- | crates/mbe/src/expander/matcher.rs | 19 | ||||
| -rw-r--r-- | crates/mbe/src/tt_iter.rs | 5 |
2 files changed, 9 insertions, 15 deletions
diff --git a/crates/mbe/src/expander/matcher.rs b/crates/mbe/src/expander/matcher.rs index 910724411d4..fb785665b97 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) @@ -706,12 +707,10 @@ fn match_meta_var(kind: &str, input: &mut TtIter) -> ExpandResult<Option<Fragmen let tt_result = match kind { "ident" => input .expect_ident() - .map(|ident| Some(tt::Leaf::from(ident.clone()).into())) + .map(|ident| tt::Leaf::from(ident.clone()).into()) .map_err(|()| err!("expected ident")), - "tt" => input.expect_tt().map(Some).map_err(|()| err!()), - "lifetime" => { - input.expect_lifetime().map(Some).map_err(|()| err!("expected lifetime")) - } + "tt" => input.expect_tt().map_err(|()| err!()), + "lifetime" => input.expect_lifetime().map_err(|()| err!("expected lifetime")), "literal" => { let neg = input.eat_char('-'); input @@ -719,20 +718,18 @@ fn match_meta_var(kind: &str, input: &mut TtIter) -> ExpandResult<Option<Fragmen .map(|literal| { let lit = literal.clone(); match neg { - None => Some(lit.into()), - Some(neg) => Some(tt::TokenTree::Subtree(tt::Subtree { + None => lit.into(), + Some(neg) => tt::TokenTree::Subtree(tt::Subtree { delimiter: None, token_trees: vec![neg, lit.into()], - })), + }), } }) .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(); + return tt_result.map(|it| Some(Fragment::Tokens(it))).into(); } }; input.expect_fragment(fragment).map(|it| it.map(Fragment::Tokens)) 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, |
