aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_parser/src/grammar/expressions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_parser/src/grammar/expressions.rs')
-rw-r--r--crates/ra_parser/src/grammar/expressions.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs
index b60a2f68c..742076c1a 100644
--- a/crates/ra_parser/src/grammar/expressions.rs
+++ b/crates/ra_parser/src/grammar/expressions.rs
@@ -489,10 +489,8 @@ fn field_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker {
489 assert!(p.at(T![.])); 489 assert!(p.at(T![.]));
490 let m = lhs.precede(p); 490 let m = lhs.precede(p);
491 p.bump(); 491 p.bump();
492 if p.at(IDENT) { 492 if p.at(IDENT) || p.at(INT_NUMBER) {
493 name_ref(p) 493 name_ref_or_index(p)
494 } else if p.at(INT_NUMBER) {
495 p.bump();
496 } else if p.at(FLOAT_NUMBER) { 494 } else if p.at(FLOAT_NUMBER) {
497 // FIXME: How to recover and instead parse INT + T![.]? 495 // FIXME: How to recover and instead parse INT + T![.]?
498 p.bump(); 496 p.bump();
@@ -577,6 +575,7 @@ fn path_expr(p: &mut Parser, r: Restrictions) -> (CompletedMarker, BlockLike) {
577// S {}; 575// S {};
578// S { x, y: 32, }; 576// S { x, y: 32, };
579// S { x, y: 32, ..Default::default() }; 577// S { x, y: 32, ..Default::default() };
578// TupleStruct { 0: 1 };
580// } 579// }
581pub(crate) fn named_field_list(p: &mut Parser) { 580pub(crate) fn named_field_list(p: &mut Parser) {
582 assert!(p.at(T!['{'])); 581 assert!(p.at(T!['{']));
@@ -588,10 +587,10 @@ pub(crate) fn named_field_list(p: &mut Parser) {
588 // fn main() { 587 // fn main() {
589 // S { #[cfg(test)] field: 1 } 588 // S { #[cfg(test)] field: 1 }
590 // } 589 // }
591 IDENT | T![#] => { 590 IDENT | INT_NUMBER | T![#] => {
592 let m = p.start(); 591 let m = p.start();
593 attributes::outer_attributes(p); 592 attributes::outer_attributes(p);
594 name_ref(p); 593 name_ref_or_index(p);
595 if p.eat(T![:]) { 594 if p.eat(T![:]) {
596 expr(p); 595 expr(p);
597 } 596 }