Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/mbe/src/tt_iter.rs')
| -rw-r--r-- | crates/mbe/src/tt_iter.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/crates/mbe/src/tt_iter.rs b/crates/mbe/src/tt_iter.rs index fc5590b718..2dbf1f3198 100644 --- a/crates/mbe/src/tt_iter.rs +++ b/crates/mbe/src/tt_iter.rs @@ -90,9 +90,20 @@ impl<'a> TtIter<'a> { let mut cursor = buffer.begin(); let mut error = false; + let mut float_fragments_to_skip = 0; for step in tree_traversal.iter() { match step { parser::Step::Token { kind, mut n_input_tokens } => { + if float_fragments_to_skip > 0 { + float_fragments_to_skip -= 1; + n_input_tokens = 0; + } + match kind { + SyntaxKind::LIFETIME_IDENT => n_input_tokens = 2, + SyntaxKind::FLOAT_NUMBER_START_1 => float_fragments_to_skip = 1, + SyntaxKind::FLOAT_NUMBER_START_2 => float_fragments_to_skip = 2, + _ => {} + } if kind == SyntaxKind::LIFETIME_IDENT { n_input_tokens = 2; } |