Skip to content

Commit c01264d

Browse files
committed
Coerce pattern_element.key to be an identifier
1 parent 63e1cc9 commit c01264d

2 files changed

Lines changed: 3 additions & 7 deletions

File tree

unified/extractor/src/languages/swift/swift.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ fn translation_rules() -> Vec<yeast::Rule> {
283283
// `directly_assignable_expression` is just a wrapper; unwrap it
284284
rule!((directly_assignable_expression expr: @inner) => {inner}),
285285
// tuple_pattern_item → pattern_element (preserves optional name/key)
286-
rule!((tuple_pattern_item name: _? @key pattern: @pat) => (pattern_element key: {..key} pattern: {pat})),
286+
rule!((tuple_pattern_item name: @key pattern: @pat) => (pattern_element key: (identifier #{key}) pattern: {pat})),
287287
rule!((tuple_pattern_item pattern: @pat) => (pattern_element pattern: {pat})),
288288
// Pattern with 'let' or 'var' binding: extract the inner pattern
289289
// TODO: Names in a pattern need to be translated to expr_equality_pattern if not under a 'var/let' but we lack a way to pass down context to do this.

unified/extractor/tests/corpus/swift/control-flow.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -843,9 +843,7 @@ top_level
843843
constructor_pattern
844844
element:
845845
pattern_element
846-
key:
847-
name_expr <-- ERROR: The field pattern_element.key should contain identifier, but got name_expr
848-
identifier: identifier "isAcknowledged"
846+
key: identifier "isAcknowledged"
849847
pattern: tuple_pattern "false"
850848
constructor:
851849
member_access_expr
@@ -868,9 +866,7 @@ top_level
868866
constructor_pattern
869867
element:
870868
pattern_element
871-
key:
872-
name_expr <-- ERROR: The field pattern_element.key should contain identifier, but got name_expr
873-
identifier: identifier "threadRowId"
869+
key: identifier "threadRowId"
874870
pattern: tuple_pattern "_"
875871
pattern_element
876872
pattern:

0 commit comments

Comments
 (0)