From 406a02fa49a7835336b029814baf02ef36514eb5 Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 12 May 2026 15:05:27 +0000 Subject: [PATCH] unified: Add fields to switch_entry Of note: this involved un-inlining where_clause. --- unified/extractor/tree-sitter-swift/grammar.js | 14 ++++++-------- unified/extractor/tree-sitter-swift/node-types.yml | 6 +++++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/unified/extractor/tree-sitter-swift/grammar.js b/unified/extractor/tree-sitter-swift/grammar.js index 6566c32b8b7..1f79aedeacf 100644 --- a/unified/extractor/tree-sitter-swift/grammar.js +++ b/unified/extractor/tree-sitter-swift/grammar.js @@ -1078,20 +1078,18 @@ module.exports = grammar({ ), switch_entry: ($) => seq( - optional($.modifiers), + field("modifiers", optional($.modifiers)), choice( seq( "case", - seq( - $.switch_pattern, - optional(seq($.where_keyword, $.expression)) - ), - repeat(seq(",", $.switch_pattern)) + field("pattern", $.switch_pattern), + field("where", optional($.where_clause)), + repeat(seq(",", field("pattern", $.switch_pattern))) ), - $.default_keyword + field("default", $.default_keyword) ), ":", - $.statements, + field("body", $.statements), optional("fallthrough") ), switch_pattern: ($) => field("pattern", alias($._binding_pattern_with_expr, $.pattern)), diff --git a/unified/extractor/tree-sitter-swift/node-types.yml b/unified/extractor/tree-sitter-swift/node-types.yml index f6718deef18..defb9522670 100644 --- a/unified/extractor/tree-sitter-swift/node-types.yml +++ b/unified/extractor/tree-sitter-swift/node-types.yml @@ -586,7 +586,11 @@ named: suppressed_constraint: suppressed: type_identifier switch_entry: - $children+: [default_keyword, expression, modifiers, statements, switch_pattern, where_keyword] + body: statements + default?: default_keyword + modifiers?: modifiers + pattern*: switch_pattern + where?: where_clause switch_pattern: pattern: pattern switch_statement: