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.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs
index 3e49e70c7..9f9e9cb0e 100644
--- a/crates/ra_parser/src/grammar/expressions.rs
+++ b/crates/ra_parser/src/grammar/expressions.rs
@@ -458,7 +458,7 @@ fn method_call_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker {
458 assert!(p.at(T![.]) && p.nth(1) == IDENT && (p.nth(2) == T!['('] || p.nth(2) == T![::])); 458 assert!(p.at(T![.]) && p.nth(1) == IDENT && (p.nth(2) == T!['('] || p.nth(2) == T![::]));
459 let m = lhs.precede(p); 459 let m = lhs.precede(p);
460 p.bump(); 460 p.bump();
461 name_ref(p); 461 name_ref(p, false);
462 type_args::opt_type_arg_list(p, true); 462 type_args::opt_type_arg_list(p, true);
463 if p.at(T!['(']) { 463 if p.at(T!['(']) {
464 arg_list(p); 464 arg_list(p);
@@ -485,7 +485,7 @@ fn field_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker {
485 let m = lhs.precede(p); 485 let m = lhs.precede(p);
486 p.bump(); 486 p.bump();
487 if p.at(IDENT) { 487 if p.at(IDENT) {
488 name_ref(p) 488 name_ref(p, false)
489 } else if p.at(INT_NUMBER) { 489 } else if p.at(INT_NUMBER) {
490 p.bump(); 490 p.bump();
491 } else if p.at(FLOAT_NUMBER) { 491 } else if p.at(FLOAT_NUMBER) {
@@ -572,6 +572,7 @@ fn path_expr(p: &mut Parser, r: Restrictions) -> (CompletedMarker, BlockLike) {
572// S {}; 572// S {};
573// S { x, y: 32, }; 573// S { x, y: 32, };
574// S { x, y: 32, ..Default::default() }; 574// S { x, y: 32, ..Default::default() };
575// TupleStruct { 0: 1 };
575// } 576// }
576pub(crate) fn named_field_list(p: &mut Parser) { 577pub(crate) fn named_field_list(p: &mut Parser) {
577 assert!(p.at(T!['{'])); 578 assert!(p.at(T!['{']));
@@ -583,10 +584,10 @@ pub(crate) fn named_field_list(p: &mut Parser) {
583 // fn main() { 584 // fn main() {
584 // S { #[cfg(test)] field: 1 } 585 // S { #[cfg(test)] field: 1 }
585 // } 586 // }
586 IDENT | T![#] => { 587 IDENT | INT_NUMBER | T![#] => {
587 let m = p.start(); 588 let m = p.start();
588 attributes::outer_attributes(p); 589 attributes::outer_attributes(p);
589 name_ref(p); 590 name_ref(p, true);
590 if p.eat(T![:]) { 591 if p.eat(T![:]) {
591 expr(p); 592 expr(p);
592 } 593 }