"Fix" mbe to work with decomposed tokens

We regressed $i * 2 where $i = 1 + 1, need to fix that!
This commit is contained in:
Aleksey Kladov 2019-09-10 14:27:08 +03:00
parent 40170885e7
commit 1c5800dee8
6 changed files with 46 additions and 84 deletions

View file

@ -70,7 +70,14 @@ fn fragment_to_syntax_node(
tt: &tt::Subtree,
fragment_kind: FragmentKind,
) -> Result<Parse<SyntaxNode>, ExpandError> {
let tokens = [tt.clone().into()];
let tmp;
let tokens = match tt {
tt::Subtree { delimiter: tt::Delimiter::None, token_trees } => token_trees.as_slice(),
_ => {
tmp = [tt.clone().into()];
&tmp[..]
}
};
let buffer = TokenBuffer::new(&tokens);
let mut token_source = SubtreeTokenSource::new(&buffer);
let mut tree_sink = TtTreeSink::new(buffer.begin());