Skip to content

Commit eb480d1

Browse files
committed
unified: Make parenthesized_type named
I'm not entirely happy about this solution, but it seemed to be the most straightforward way of avoiding various kinds of token bleeding.
1 parent 2eee2e5 commit eb480d1

2 files changed

Lines changed: 10 additions & 8 deletions

File tree

unified/extractor/tree-sitter-swift/grammar.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ module.exports = grammar({
452452
optional(sep1Opt(field("element", $.tuple_type_item), ",")),
453453
")"
454454
),
455-
field("element", alias($._parenthesized_type, $.tuple_type_item))
455+
field("element", alias($.parenthesized_type, $.tuple_type_item))
456456
),
457457
tuple_type_item: ($) =>
458458
prec(
@@ -467,7 +467,7 @@ module.exports = grammar({
467467
prec(
468468
PRECS.expr,
469469
seq(
470-
optional($.wildcard_pattern),
470+
optional(field("external_name", $.wildcard_pattern)),
471471
field("name", $.simple_identifier),
472472
":"
473473
)
@@ -571,10 +571,10 @@ module.exports = grammar({
571571
field("suffix", $.constructor_suffix)
572572
)
573573
),
574-
_parenthesized_type: ($) =>
574+
parenthesized_type: ($) =>
575575
seq(
576576
"(",
577-
choice($.opaque_type, $.existential_type, $.dictionary_type),
577+
field("type", choice($.opaque_type, $.existential_type, $.dictionary_type)),
578578
")"
579579
),
580580
navigation_expression: ($) =>
@@ -586,7 +586,7 @@ module.exports = grammar({
586586
choice(
587587
$._navigable_type_expression,
588588
$.expression,
589-
$._parenthesized_type
589+
$.parenthesized_type
590590
)
591591
),
592592
field("suffix", $.navigation_suffix)

unified/extractor/tree-sitter-swift/node-types.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ named:
445445
mutation_modifier:
446446
navigation_expression:
447447
suffix: navigation_suffix
448-
target+: ["(", ")", array_type, dictionary_type, existential_type, expression, opaque_type, user_type]
448+
target: [array_type, dictionary_type, expression, parenthesized_type, user_type]
449449
navigation_suffix:
450450
suffix: [integer_literal, simple_identifier]
451451
nested_type_identifier:
@@ -479,6 +479,8 @@ named:
479479
parameter_modifier:
480480
parameter_modifiers:
481481
modifier+: parameter_modifier
482+
parenthesized_type:
483+
type: [dictionary_type, existential_type, opaque_type]
482484
pattern:
483485
binding?: value_binding_pattern
484486
bound_identifier?: simple_identifier
@@ -630,10 +632,10 @@ named:
630632
tuple_type:
631633
element*: tuple_type_item
632634
tuple_type_item:
633-
$children?: [dictionary_type, existential_type, opaque_type, wildcard_pattern]
635+
external_name?: wildcard_pattern
634636
modifiers?: parameter_modifiers
635637
name?: simple_identifier
636-
type?: type
638+
type: [dictionary_type, existential_type, opaque_type, type]
637639
type:
638640
modifiers?: type_modifiers
639641
name: unannotated_type

0 commit comments

Comments
 (0)