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.rs11
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;
}