From 957b5ed23a4860fe3c9b80687a801b5d7870fe00 Mon Sep 17 00:00:00 2001 From: Evgenii P Date: Fri, 9 Aug 2019 15:38:52 +0700 Subject: Parse tuple struct field initialization --- crates/ra_parser/src/grammar/expressions.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'crates/ra_parser/src/grammar/expressions.rs') diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs index 3e49e70c7..50c938a23 100644 --- a/crates/ra_parser/src/grammar/expressions.rs +++ b/crates/ra_parser/src/grammar/expressions.rs @@ -572,6 +572,7 @@ fn path_expr(p: &mut Parser, r: Restrictions) -> (CompletedMarker, BlockLike) { // S {}; // S { x, y: 32, }; // S { x, y: 32, ..Default::default() }; +// TupleStruct { 0: 1 }; // } pub(crate) fn named_field_list(p: &mut Parser) { assert!(p.at(T!['{'])); @@ -583,7 +584,7 @@ pub(crate) fn named_field_list(p: &mut Parser) { // fn main() { // S { #[cfg(test)] field: 1 } // } - IDENT | T![#] => { + IDENT | INT_NUMBER | T![#] => { let m = p.start(); attributes::outer_attributes(p); name_ref(p); -- cgit v1.2.3 From fa24e20867893178ed7265ecadb2bcb09cf76dac Mon Sep 17 00:00:00 2001 From: Evgenii P Date: Fri, 9 Aug 2019 16:08:36 +0700 Subject: Make name_ref to accept numeric names optionally --- crates/ra_parser/src/grammar/expressions.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'crates/ra_parser/src/grammar/expressions.rs') diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs index 50c938a23..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 { assert!(p.at(T![.]) && p.nth(1) == IDENT && (p.nth(2) == T!['('] || p.nth(2) == T![::])); let m = lhs.precede(p); p.bump(); - name_ref(p); + name_ref(p, false); type_args::opt_type_arg_list(p, true); if p.at(T!['(']) { arg_list(p); @@ -485,7 +485,7 @@ fn field_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { let m = lhs.precede(p); p.bump(); if p.at(IDENT) { - name_ref(p) + name_ref(p, false) } else if p.at(INT_NUMBER) { p.bump(); } else if p.at(FLOAT_NUMBER) { @@ -587,7 +587,7 @@ pub(crate) fn named_field_list(p: &mut Parser) { IDENT | INT_NUMBER | T![#] => { let m = p.start(); attributes::outer_attributes(p); - name_ref(p); + name_ref(p, true); if p.eat(T![:]) { expr(p); } -- cgit v1.2.3