Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/mbe/src/syntax_bridge.rs')
| -rw-r--r-- | crates/mbe/src/syntax_bridge.rs | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/crates/mbe/src/syntax_bridge.rs b/crates/mbe/src/syntax_bridge.rs index 8b8577986d..79fd1250e0 100644 --- a/crates/mbe/src/syntax_bridge.rs +++ b/crates/mbe/src/syntax_bridge.rs @@ -260,23 +260,19 @@ fn convert_tokens<C: TokenConvertor>(conv: &mut C) -> tt::Subtree { IDENT => make_leaf!(Ident), UNDERSCORE => make_leaf!(Ident), k if k.is_keyword() => make_leaf!(Ident), - FLOAT_NUMBER_PART => { + FLOAT_NUMBER_START_0 | FLOAT_NUMBER_START_1 | FLOAT_NUMBER_START_2 => { // Reassemble a split-up float token. let mut range = range; let mut text = token.to_text(conv).to_string(); - if let Some(dot) = conv.peek() { - if dot.kind(conv) == DOT { - let (_, dot_range) = conv.bump().unwrap(); - text += &*dot.to_text(conv); - range = TextRange::new(range.start(), dot_range.end()); - - if let Some(tail) = conv.peek() { - if tail.kind(conv) == FLOAT_NUMBER_PART { - let (_, tail_range) = conv.bump().unwrap(); - text += &*tail.to_text(conv); - range = TextRange::new(range.start(), tail_range.end()); - } - } + if kind == FLOAT_NUMBER_START_1 || kind == FLOAT_NUMBER_START_2 { + let (dot, dot_range) = conv.bump().unwrap(); + text += &*dot.to_text(conv); + range = TextRange::new(range.start(), dot_range.end()); + + if kind == FLOAT_NUMBER_START_2 { + let (tail, tail_range) = conv.bump().unwrap(); + text += &*tail.to_text(conv); + range = TextRange::new(range.start(), tail_range.end()); } } |