Unnamed repository; edit this file 'description' to name the repository.
fix jointess for floats not being set properly
Lukas Wirth 2023-02-07
parent e59487d · commit 27cd509
-rw-r--r--crates/parser/src/shortcuts.rs16
1 files changed, 7 insertions, 9 deletions
diff --git a/crates/parser/src/shortcuts.rs b/crates/parser/src/shortcuts.rs
index 18a6f838fa..21939c3494 100644
--- a/crates/parser/src/shortcuts.rs
+++ b/crates/parser/src/shortcuts.rs
@@ -43,18 +43,16 @@ impl<'a> LexedStr<'a> {
res.was_joint();
}
res.push(kind);
- }
- if kind == SyntaxKind::FLOAT_NUMBER {
// we set jointness for floating point numbers as a hack to inform the
// parser about whether we have a `0.` or `0.1` style float
- if self.text(i).split_once('.').map_or(false, |(_, it)| it.is_empty()) {
- was_joint = false;
- } else {
- was_joint = true;
+ if kind == SyntaxKind::FLOAT_NUMBER {
+ if !self.text(i).split_once('.').map_or(true, |(_, it)| it.is_empty()) {
+ res.was_joint();
+ }
}
- } else {
- was_joint = true;
}
+
+ was_joint = true;
}
}
res
@@ -202,7 +200,7 @@ impl Builder<'_, '_> {
(self.sink)(StrStep::Token { kind: SyntaxKind::DOT, text: "." });
if has_pseudo_dot {
- assert!(right.is_empty());
+ assert!(right.is_empty(), "{left}.{right}");
self.state = State::Normal;
} else {
(self.sink)(StrStep::Enter { kind: SyntaxKind::NAME_REF });