From 4fdaec99c0b97c56b67483b57fe2bcb89570d7c8 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 10 Sep 2019 20:28:50 +0300 Subject: simiplify --- crates/ra_mbe/src/mbe_expander.rs | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) (limited to 'crates/ra_mbe/src/mbe_expander.rs') diff --git a/crates/ra_mbe/src/mbe_expander.rs b/crates/ra_mbe/src/mbe_expander.rs index db05c6253..78df96880 100644 --- a/crates/ra_mbe/src/mbe_expander.rs +++ b/crates/ra_mbe/src/mbe_expander.rs @@ -354,20 +354,6 @@ fn expand_subtree( Ok(tt::Subtree { delimiter: template.delimiter, token_trees: buf }) } -/// Reduce single token subtree to single token -/// In `tt` matcher case, all tt tokens will be braced by a Delimiter::None -/// which makes all sort of problems. -fn reduce_single_token(mut subtree: tt::Subtree) -> tt::TokenTree { - if subtree.delimiter != tt::Delimiter::None || subtree.token_trees.len() != 1 { - return subtree.into(); - } - - match subtree.token_trees.pop().unwrap() { - tt::TokenTree::Subtree(subtree) => reduce_single_token(subtree), - tt::TokenTree::Leaf(token) => token.into(), - } -} - fn expand_tt(template: &crate::TokenTree, ctx: &mut ExpandCtx) -> Result { let res: tt::TokenTree = match template { crate::TokenTree::Subtree(subtree) => expand_subtree(subtree, ctx)?.into(), @@ -454,7 +440,7 @@ fn expand_tt(template: &crate::TokenTree, ctx: &mut ExpandCtx) -> Result ['>'] /Delimiter:None>} - reduce_single_token(tt::Subtree { delimiter: tt::Delimiter::None, token_trees: buf }) + tt::Subtree { delimiter: tt::Delimiter::None, token_trees: buf }.into() } crate::TokenTree::Leaf(leaf) => match leaf { crate::Leaf::Ident(ident) => { @@ -497,16 +483,7 @@ fn expand_tt(template: &crate::TokenTree, ctx: &mut ExpandCtx) -> Result { - if let tt::TokenTree::Subtree(subtree) = tt { - reduce_single_token(subtree) - } else { - tt - } - } - Fragment::Ast(_) => return Ok(fragment), - } + return Ok(fragment); } } crate::Leaf::Literal(l) => tt::Leaf::from(tt::Literal { text: l.text.clone() }).into(), -- cgit v1.2.3