diff options
Diffstat (limited to 'crates/ra_parser/src/grammar/expressions.rs')
-rw-r--r-- | crates/ra_parser/src/grammar/expressions.rs | 9 |
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 | // } |
576 | pub(crate) fn named_field_list(p: &mut Parser) { | 577 | pub(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 | } |