From b39bcd9a0cc742b158504b0ce9a03b15c3e13849 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 11 Nov 2026 12:26:39 +0100 Subject: [PATCH] Unified: Populate `external_name_node` for enum case parameters --- unified/extractor/src/languages/swift/swift.rs | 5 ++++- .../corpus/swift/types/enum-with-associated-values.output | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/unified/extractor/src/languages/swift/swift.rs b/unified/extractor/src/languages/swift/swift.rs index 4599cc79f62f..db66b121af17 100644 --- a/unified/extractor/src/languages/swift/swift.rs +++ b/unified/extractor/src/languages/swift/swift.rs @@ -518,7 +518,10 @@ fn translation_rules() -> Vec> { rule!( (enumCaseParameter firstName: _? @@name type: @ty) => - (parameter pattern: [(identifier #{name})] type: {ty}) + (parameter + external_name_node: [(identifier #{name})] + pattern: [(identifier #{name})] + type: {ty}) ), // An enum element with associated values (`case circle(radius: Double)`) // becomes a nested `class_like_declaration` whose constructor carries the diff --git a/unified/extractor/tests/corpus/swift/types/enum-with-associated-values.output b/unified/extractor/tests/corpus/swift/types/enum-with-associated-values.output index 655bc8e33040..81b0b893eedd 100644 --- a/unified/extractor/tests/corpus/swift/types/enum-with-associated-values.output +++ b/unified/extractor/tests/corpus/swift/types/enum-with-associated-values.output @@ -79,7 +79,8 @@ top_level source="⟨body⟩" member: constructor_declaration source="circle(⟨parameter⟩)" parameter: - parameter source="⟨pattern⟩: ⟨type⟩" + parameter source="⟨external_name_node⟩⟨pattern⟩: ⟨type⟩" + external_name_node: identifier "radius" source="radius" type: identifier "Double" source="Double" pattern: identifier "radius" source="radius" body: block source="" @@ -89,7 +90,8 @@ top_level source="⟨body⟩" member: constructor_declaration source="square(⟨parameter⟩)" parameter: - parameter source="⟨pattern⟩: ⟨type⟩" + parameter source="⟨external_name_node⟩⟨pattern⟩: ⟨type⟩" + external_name_node: identifier "side" source="side" type: identifier "Double" source="Double" pattern: identifier "side" source="side" body: block source=""