Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/parser/src/grammar/expressions.rs')
| -rw-r--r-- | crates/parser/src/grammar/expressions.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/crates/parser/src/grammar/expressions.rs b/crates/parser/src/grammar/expressions.rs index a40db15049..5d652fb8dc 100644 --- a/crates/parser/src/grammar/expressions.rs +++ b/crates/parser/src/grammar/expressions.rs @@ -593,7 +593,16 @@ pub(crate) fn record_expr_field_list(p: &mut Parser) { T![.] if p.at(T![..]) => { m.abandon(p); p.bump(T![..]); - expr(p); + + // test destructuring_assignment_struct_rest_pattern + // fn foo() { + // S { .. } = S {}; + // } + + // We permit `.. }` on the left-hand side of a destructuring assignment. + if !p.at(T!['}']) { + expr(p); + } } T!['{'] => { error_block(p, "expected a field"); |