Skip to content

Commit 15064cc

Browse files
authored
Merge pull request #2402 from rintaro/5.10-wildcardpattern-typeannotation
[5.10] Remove `WildcardPattern.typeAnnotation`
2 parents 0ed1679 + c042bab commit 15064cc

File tree

8 files changed

+56
-77
lines changed

8 files changed

+56
-77
lines changed

CodeGeneration/Sources/SyntaxSupport/PatternNodes.swift

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,7 @@ public let PATTERN_NODES: [Node] = [
173173
Child(
174174
name: "wildcard",
175175
kind: .token(choices: [.token(.wildcard)])
176-
),
177-
Child(
178-
name: "typeAnnotation",
179-
kind: .node(kind: .typeAnnotation),
180-
isOptional: true
181-
),
176+
)
182177
]
183178
),
184179

Release Notes/510.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@
4040
- Issue: https://github.com/apple/swift-syntax/issues/2092
4141
- Pull Request: https://github.com/apple/swift-syntax/pull/2108
4242

43+
- `WildcardPatternSyntax.typeAnnotation`
44+
- Description: `typeAnnotation` on `WildcardPatternSyntax` was a mistake. Use `typeAnnotation` properties on the outer constructs instead. E.g. `PatternBindingListSyntax.typeAnnotation`
45+
- Pull Request: https://github.com/apple/swift-syntax/pull/2393
46+
4347
## API-Incompatible Changes
4448

4549
- `NoteMessage.fixItID` renamed to `noteID`

Sources/SwiftParser/Patterns.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ extension Parser {
6464
return RawPatternSyntax(
6565
RawWildcardPatternSyntax(
6666
wildcard: wildcard,
67-
typeAnnotation: nil,
6867
arena: self.arena
6968
)
7069
)

Sources/SwiftSyntax/SwiftSyntaxCompatibility.swift

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,45 @@ public extension TokenSyntax {
438438
}
439439
}
440440

441+
public extension WildcardPatternSyntax {
442+
@available(*, deprecated, message: "remove 'typeAnnotation'")
443+
init(
444+
leadingTrivia: Trivia? = nil,
445+
_ unexpectedBeforeWildcard: UnexpectedNodesSyntax? = nil,
446+
wildcard: TokenSyntax = .wildcardToken(),
447+
_ unexpectedBetweenWildcardAndTypeAnnotation: UnexpectedNodesSyntax? = nil,
448+
typeAnnotation: TypeAnnotationSyntax? = nil,
449+
_ unexpectedAfterTypeAnnotation: UnexpectedNodesSyntax? = nil,
450+
trailingTrivia: Trivia? = nil
451+
) {
452+
self.init(
453+
leadingTrivia: leadingTrivia,
454+
unexpectedBeforeWildcard,
455+
wildcard: wildcard,
456+
unexpectedAfterTypeAnnotation,
457+
trailingTrivia: trailingTrivia
458+
);
459+
}
460+
461+
@available(*, deprecated, message: "'unexpectedBetweenWildcardAndTypeAnnotation' was removed")
462+
var unexpectedBetweenWildcardAndTypeAnnotation: UnexpectedNodesSyntax? {
463+
get { nil }
464+
set {}
465+
}
466+
467+
@available(*, deprecated, message: "'typeAnnotation' was removed")
468+
var typeAnnotation: TypeAnnotationSyntax? {
469+
get { nil }
470+
set {}
471+
}
472+
473+
@available(*, deprecated, renamed: "unexpectedAfterWildcard")
474+
var unexpectedAfterTypeAnnotation: UnexpectedNodesSyntax? {
475+
get { unexpectedAfterWildcard }
476+
set { unexpectedAfterWildcard = newValue }
477+
}
478+
}
479+
441480
//==========================================================================//
442481
// IMPORTANT: If you are tempted to add a compatibility layer code here //
443482
// please insert it in alphabetical order above //

Sources/SwiftSyntax/generated/ChildNameForKeyPath.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3387,12 +3387,8 @@ public func childName(_ keyPath: AnyKeyPath) -> String? {
33873387
return "unexpectedBeforeWildcard"
33883388
case \WildcardPatternSyntax.wildcard:
33893389
return "wildcard"
3390-
case \WildcardPatternSyntax.unexpectedBetweenWildcardAndTypeAnnotation:
3391-
return "unexpectedBetweenWildcardAndTypeAnnotation"
3392-
case \WildcardPatternSyntax.typeAnnotation:
3393-
return "typeAnnotation"
3394-
case \WildcardPatternSyntax.unexpectedAfterTypeAnnotation:
3395-
return "unexpectedAfterTypeAnnotation"
3390+
case \WildcardPatternSyntax.unexpectedAfterWildcard:
3391+
return "unexpectedAfterWildcard"
33963392
case \YieldStmtSyntax.unexpectedBeforeYieldKeyword:
33973393
return "unexpectedBeforeYieldKeyword"
33983394
case \YieldStmtSyntax.yieldKeyword:

Sources/SwiftSyntax/generated/raw/RawSyntaxNodesTUVWXYZ.swift

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2298,19 +2298,15 @@ public struct RawWildcardPatternSyntax: RawPatternSyntaxNodeProtocol {
22982298
public init(
22992299
_ unexpectedBeforeWildcard: RawUnexpectedNodesSyntax? = nil,
23002300
wildcard: RawTokenSyntax,
2301-
_ unexpectedBetweenWildcardAndTypeAnnotation: RawUnexpectedNodesSyntax? = nil,
2302-
typeAnnotation: RawTypeAnnotationSyntax?,
2303-
_ unexpectedAfterTypeAnnotation: RawUnexpectedNodesSyntax? = nil,
2301+
_ unexpectedAfterWildcard: RawUnexpectedNodesSyntax? = nil,
23042302
arena: __shared SyntaxArena
23052303
) {
23062304
let raw = RawSyntax.makeLayout(
2307-
kind: .wildcardPattern, uninitializedCount: 5, arena: arena) { layout in
2305+
kind: .wildcardPattern, uninitializedCount: 3, arena: arena) { layout in
23082306
layout.initialize(repeating: nil)
23092307
layout[0] = unexpectedBeforeWildcard?.raw
23102308
layout[1] = wildcard.raw
2311-
layout[2] = unexpectedBetweenWildcardAndTypeAnnotation?.raw
2312-
layout[3] = typeAnnotation?.raw
2313-
layout[4] = unexpectedAfterTypeAnnotation?.raw
2309+
layout[2] = unexpectedAfterWildcard?.raw
23142310
}
23152311
self.init(unchecked: raw)
23162312
}
@@ -2323,17 +2319,9 @@ public struct RawWildcardPatternSyntax: RawPatternSyntaxNodeProtocol {
23232319
layoutView.children[1].map(RawTokenSyntax.init(raw:))!
23242320
}
23252321

2326-
public var unexpectedBetweenWildcardAndTypeAnnotation: RawUnexpectedNodesSyntax? {
2322+
public var unexpectedAfterWildcard: RawUnexpectedNodesSyntax? {
23272323
layoutView.children[2].map(RawUnexpectedNodesSyntax.init(raw:))
23282324
}
2329-
2330-
public var typeAnnotation: RawTypeAnnotationSyntax? {
2331-
layoutView.children[3].map(RawTypeAnnotationSyntax.init(raw:))
2332-
}
2333-
2334-
public var unexpectedAfterTypeAnnotation: RawUnexpectedNodesSyntax? {
2335-
layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:))
2336-
}
23372325
}
23382326

23392327
@_spi(RawSyntax)

Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2690,12 +2690,10 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
26902690
assertNoError(kind, 5, verify(layout[5], as: RawCodeBlockSyntax.self))
26912691
assertNoError(kind, 6, verify(layout[6], as: RawUnexpectedNodesSyntax?.self))
26922692
case .wildcardPattern:
2693-
assert(layout.count == 5)
2693+
assert(layout.count == 3)
26942694
assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self))
26952695
assertNoError(kind, 1, verify(layout[1], as: RawTokenSyntax.self, tokenChoices: [.tokenKind(.wildcard)]))
26962696
assertNoError(kind, 2, verify(layout[2], as: RawUnexpectedNodesSyntax?.self))
2697-
assertNoError(kind, 3, verify(layout[3], as: RawTypeAnnotationSyntax?.self))
2698-
assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self))
26992697
case .yieldStmt:
27002698
assert(layout.count == 5)
27012699
assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self))

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesTUVWXYZ.swift

Lines changed: 5 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1823,7 +1823,6 @@ public struct TypeAliasDeclSyntax: DeclSyntaxProtocol, SyntaxHashable, _LeafDecl
18231823
/// - ``MatchingPatternConditionSyntax``.``MatchingPatternConditionSyntax/typeAnnotation``
18241824
/// - ``OptionalBindingConditionSyntax``.``OptionalBindingConditionSyntax/typeAnnotation``
18251825
/// - ``PatternBindingSyntax``.``PatternBindingSyntax/typeAnnotation``
1826-
/// - ``WildcardPatternSyntax``.``WildcardPatternSyntax/typeAnnotation``
18271826
public struct TypeAnnotationSyntax: SyntaxProtocol, SyntaxHashable, _LeafSyntaxNodeProtocol {
18281827
public let _syntaxNode: Syntax
18291828

@@ -3807,7 +3806,6 @@ public struct WhileStmtSyntax: StmtSyntaxProtocol, SyntaxHashable, _LeafStmtSynt
38073806
/// ### Children
38083807
///
38093808
/// - `wildcard`: `'_'`
3810-
/// - `typeAnnotation`: ``TypeAnnotationSyntax``?
38113809
public struct WildcardPatternSyntax: PatternSyntaxProtocol, SyntaxHashable, _LeafPatternSyntaxNodeProtocol {
38123810
public let _syntaxNode: Syntax
38133811

@@ -3825,28 +3823,14 @@ public struct WildcardPatternSyntax: PatternSyntaxProtocol, SyntaxHashable, _Lea
38253823
leadingTrivia: Trivia? = nil,
38263824
_ unexpectedBeforeWildcard: UnexpectedNodesSyntax? = nil,
38273825
wildcard: TokenSyntax = .wildcardToken(),
3828-
_ unexpectedBetweenWildcardAndTypeAnnotation: UnexpectedNodesSyntax? = nil,
3829-
typeAnnotation: TypeAnnotationSyntax? = nil,
3830-
_ unexpectedAfterTypeAnnotation: UnexpectedNodesSyntax? = nil,
3826+
_ unexpectedAfterWildcard: UnexpectedNodesSyntax? = nil,
38313827
trailingTrivia: Trivia? = nil
38323828

38333829
) {
38343830
// Extend the lifetime of all parameters so their arenas don't get destroyed
38353831
// before they can be added as children of the new arena.
3836-
self = withExtendedLifetime((SyntaxArena(), (
3837-
unexpectedBeforeWildcard,
3838-
wildcard,
3839-
unexpectedBetweenWildcardAndTypeAnnotation,
3840-
typeAnnotation,
3841-
unexpectedAfterTypeAnnotation
3842-
))) { (arena, _) in
3843-
let layout: [RawSyntax?] = [
3844-
unexpectedBeforeWildcard?.raw,
3845-
wildcard.raw,
3846-
unexpectedBetweenWildcardAndTypeAnnotation?.raw,
3847-
typeAnnotation?.raw,
3848-
unexpectedAfterTypeAnnotation?.raw
3849-
]
3832+
self = withExtendedLifetime((SyntaxArena(), (unexpectedBeforeWildcard, wildcard, unexpectedAfterWildcard))) { (arena, _) in
3833+
let layout: [RawSyntax?] = [unexpectedBeforeWildcard?.raw, wildcard.raw, unexpectedAfterWildcard?.raw]
38503834
let raw = RawSyntax.makeLayout(
38513835
kind: SyntaxKind.wildcardPattern,
38523836
from: layout,
@@ -3877,7 +3861,7 @@ public struct WildcardPatternSyntax: PatternSyntaxProtocol, SyntaxHashable, _Lea
38773861
}
38783862
}
38793863

3880-
public var unexpectedBetweenWildcardAndTypeAnnotation: UnexpectedNodesSyntax? {
3864+
public var unexpectedAfterWildcard: UnexpectedNodesSyntax? {
38813865
get {
38823866
return Syntax(self).child(at: 2)?.cast(UnexpectedNodesSyntax.self)
38833867
}
@@ -3886,32 +3870,8 @@ public struct WildcardPatternSyntax: PatternSyntaxProtocol, SyntaxHashable, _Lea
38863870
}
38873871
}
38883872

3889-
public var typeAnnotation: TypeAnnotationSyntax? {
3890-
get {
3891-
return Syntax(self).child(at: 3)?.cast(TypeAnnotationSyntax.self)
3892-
}
3893-
set(value) {
3894-
self = Syntax(self).replacingChild(at: 3, with: Syntax(value), arena: SyntaxArena()).cast(WildcardPatternSyntax.self)
3895-
}
3896-
}
3897-
3898-
public var unexpectedAfterTypeAnnotation: UnexpectedNodesSyntax? {
3899-
get {
3900-
return Syntax(self).child(at: 4)?.cast(UnexpectedNodesSyntax.self)
3901-
}
3902-
set(value) {
3903-
self = Syntax(self).replacingChild(at: 4, with: Syntax(value), arena: SyntaxArena()).cast(WildcardPatternSyntax.self)
3904-
}
3905-
}
3906-
39073873
public static var structure: SyntaxNodeStructure {
3908-
return .layout([
3909-
\Self.unexpectedBeforeWildcard,
3910-
\Self.wildcard,
3911-
\Self.unexpectedBetweenWildcardAndTypeAnnotation,
3912-
\Self.typeAnnotation,
3913-
\Self.unexpectedAfterTypeAnnotation
3914-
])
3874+
return .layout([\Self.unexpectedBeforeWildcard, \Self.wildcard, \Self.unexpectedAfterWildcard])
39153875
}
39163876
}
39173877

0 commit comments

Comments
 (0)