diff --git a/unified/extractor/src/languages/swift/swift.rs b/unified/extractor/src/languages/swift/swift.rs index 8d5e9f9052a..daf5d671981 100644 --- a/unified/extractor/src/languages/swift/swift.rs +++ b/unified/extractor/src/languages/swift/swift.rs @@ -283,7 +283,7 @@ fn translation_rules() -> Vec { // `directly_assignable_expression` is just a wrapper; unwrap it rule!((directly_assignable_expression expr: @inner) => {inner}), // tuple_pattern_item → pattern_element (preserves optional name/key) - rule!((tuple_pattern_item name: _? @key pattern: @pat) => (pattern_element key: {..key} pattern: {pat})), + rule!((tuple_pattern_item name: @key pattern: @pat) => (pattern_element key: (identifier #{key}) pattern: {pat})), rule!((tuple_pattern_item pattern: @pat) => (pattern_element pattern: {pat})), // Pattern with 'let' or 'var' binding: extract the inner pattern // 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. diff --git a/unified/extractor/tests/corpus/swift/control-flow.txt b/unified/extractor/tests/corpus/swift/control-flow.txt index ee87cf2c00f..ff7c529d6e9 100644 --- a/unified/extractor/tests/corpus/swift/control-flow.txt +++ b/unified/extractor/tests/corpus/swift/control-flow.txt @@ -843,9 +843,7 @@ top_level constructor_pattern element: pattern_element - key: - name_expr <-- ERROR: The field pattern_element.key should contain identifier, but got name_expr - identifier: identifier "isAcknowledged" + key: identifier "isAcknowledged" pattern: tuple_pattern "false" constructor: member_access_expr @@ -868,9 +866,7 @@ top_level constructor_pattern element: pattern_element - key: - name_expr <-- ERROR: The field pattern_element.key should contain identifier, but got name_expr - identifier: identifier "threadRowId" + key: identifier "threadRowId" pattern: tuple_pattern "_" pattern_element pattern: