Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/parser/src/grammar.rs')
-rw-r--r--crates/parser/src/grammar.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/crates/parser/src/grammar.rs b/crates/parser/src/grammar.rs
index 45d9b2e4e0..92f3302538 100644
--- a/crates/parser/src/grammar.rs
+++ b/crates/parser/src/grammar.rs
@@ -39,6 +39,7 @@ mod generic_params;
mod types;
use crate::{
+ grammar::expressions::FLOAT_LITERAL_FIRST,
parser::{CompletedMarker, Marker, Parser},
SyntaxKind::{self, *},
TokenSet, T,
@@ -318,9 +319,15 @@ fn name_ref(p: &mut Parser) {
}
fn name_ref_or_index(p: &mut Parser) {
- assert!(p.at(IDENT) || p.at(INT_NUMBER) || p.at(FLOAT_NUMBER_PART));
+ assert!(
+ p.at(IDENT) || p.at(INT_NUMBER) || p.at(FLOAT_NUMBER_PART) || p.at_ts(FLOAT_LITERAL_FIRST)
+ );
let m = p.start();
- p.bump_any();
+ if p.at_ts(FLOAT_LITERAL_FIRST) {
+ p.bump_remap(FLOAT_NUMBER_PART);
+ } else {
+ p.bump_any();
+ }
m.complete(p, NAME_REF);
}