Skip to content

Commit 328fd3d

Browse files
committed
[Variadic Generics] type parameter pack syntax change: T... -> each T
1 parent 1b8d5e9 commit 328fd3d

File tree

8 files changed

+111
-111
lines changed

8 files changed

+111
-111
lines changed

CodeGeneration/Sources/SyntaxSupport/gyb_generated/GenericNodes.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ public let GENERIC_NODES: [Node] = [
5757
Child(name: "Attributes",
5858
kind: .collection(kind: "AttributeList", collectionElementName: "Attribute"),
5959
isOptional: true),
60+
Child(name: "Each",
61+
kind: .token(choices: [.keyword(text: "each")]),
62+
nameForDiagnostics: "parameter pack specifier",
63+
isOptional: true),
6064
Child(name: "Name",
6165
kind: .token(choices: [.token(tokenKind: "IdentifierToken")]),
6266
nameForDiagnostics: "name"),
63-
Child(name: "Ellipsis",
64-
kind: .token(choices: [.token(tokenKind: "EllipsisToken")]),
65-
nameForDiagnostics: "parameter pack specifier",
66-
isOptional: true),
6767
Child(name: "Colon",
6868
kind: .token(choices: [.token(tokenKind: "ColonToken")]),
6969
isOptional: true),

Sources/SwiftParser/Declarations.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -469,14 +469,14 @@ extension Parser {
469469
repeat {
470470
let attributes = self.parseAttributeList()
471471

472-
let (unexpectedBeforeName, name) = self.expectIdentifier()
473-
if attributes == nil && unexpectedBeforeName == nil && name.isMissing && elements.isEmpty {
472+
// Parse the 'each' keyword for a type parameter pack 'each T'.
473+
let each = self.consume(if: .keyword(.each))
474+
475+
let (unexpectedBetweenEachAndName, name) = self.expectIdentifier()
476+
if attributes == nil && unexpectedBetweenEachAndName == nil && name.isMissing && elements.isEmpty {
474477
break
475478
}
476479

477-
// Parse the ellipsis for a type parameter pack 'T...'.
478-
let ellipsis = tryConsumeEllipsisPrefix()
479-
480480
// Parse the ':' followed by a type.
481481
let colon = self.consume(if: .colon)
482482
let unexpectedBeforeInherited: RawUnexpectedNodesSyntax?
@@ -506,9 +506,9 @@ extension Parser {
506506
elements.append(
507507
RawGenericParameterSyntax(
508508
attributes: attributes,
509-
unexpectedBeforeName,
509+
each: each,
510+
unexpectedBetweenEachAndName,
510511
name: name,
511-
ellipsis: ellipsis,
512512
colon: colon,
513513
unexpectedBeforeInherited,
514514
inheritedType: inherited,

Sources/SwiftRefactor/OpaqueParameterToGeneric.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ fileprivate class SomeParameterRewriter: SyntaxRewriter {
5656

5757
let genericParam = GenericParameterSyntax(
5858
attributes: nil,
59+
each: nil,
5960
name: paramNameSyntax,
60-
ellipsis: nil,
6161
colon: colon,
6262
inheritedType: inheritedType,
6363
trailingComma: nil

Sources/SwiftSyntax/generated/raw/RawSyntaxNodes.swift

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9131,11 +9131,11 @@ public struct RawGenericParameterSyntax: RawSyntaxNodeProtocol {
91319131
public init(
91329132
_ unexpectedBeforeAttributes: RawUnexpectedNodesSyntax? = nil,
91339133
attributes: RawAttributeListSyntax?,
9134-
_ unexpectedBetweenAttributesAndName: RawUnexpectedNodesSyntax? = nil,
9134+
_ unexpectedBetweenAttributesAndEach: RawUnexpectedNodesSyntax? = nil,
9135+
each: RawTokenSyntax?,
9136+
_ unexpectedBetweenEachAndName: RawUnexpectedNodesSyntax? = nil,
91359137
name: RawTokenSyntax,
9136-
_ unexpectedBetweenNameAndEllipsis: RawUnexpectedNodesSyntax? = nil,
9137-
ellipsis: RawTokenSyntax?,
9138-
_ unexpectedBetweenEllipsisAndColon: RawUnexpectedNodesSyntax? = nil,
9138+
_ unexpectedBetweenNameAndColon: RawUnexpectedNodesSyntax? = nil,
91399139
colon: RawTokenSyntax?,
91409140
_ unexpectedBetweenColonAndInheritedType: RawUnexpectedNodesSyntax? = nil,
91419141
inheritedType: RawTypeSyntax?,
@@ -9149,11 +9149,11 @@ public struct RawGenericParameterSyntax: RawSyntaxNodeProtocol {
91499149
layout.initialize(repeating: nil)
91509150
layout[0] = unexpectedBeforeAttributes?.raw
91519151
layout[1] = attributes?.raw
9152-
layout[2] = unexpectedBetweenAttributesAndName?.raw
9153-
layout[3] = name.raw
9154-
layout[4] = unexpectedBetweenNameAndEllipsis?.raw
9155-
layout[5] = ellipsis?.raw
9156-
layout[6] = unexpectedBetweenEllipsisAndColon?.raw
9152+
layout[2] = unexpectedBetweenAttributesAndEach?.raw
9153+
layout[3] = each?.raw
9154+
layout[4] = unexpectedBetweenEachAndName?.raw
9155+
layout[5] = name.raw
9156+
layout[6] = unexpectedBetweenNameAndColon?.raw
91579157
layout[7] = colon?.raw
91589158
layout[8] = unexpectedBetweenColonAndInheritedType?.raw
91599159
layout[9] = inheritedType?.raw
@@ -9172,23 +9172,23 @@ public struct RawGenericParameterSyntax: RawSyntaxNodeProtocol {
91729172
layoutView.children[1].map(RawAttributeListSyntax.init(raw:))
91739173
}
91749174

9175-
public var unexpectedBetweenAttributesAndName: RawUnexpectedNodesSyntax? {
9175+
public var unexpectedBetweenAttributesAndEach: RawUnexpectedNodesSyntax? {
91769176
layoutView.children[2].map(RawUnexpectedNodesSyntax.init(raw:))
91779177
}
91789178

9179-
public var name: RawTokenSyntax {
9180-
layoutView.children[3].map(RawTokenSyntax.init(raw:))!
9179+
public var each: RawTokenSyntax? {
9180+
layoutView.children[3].map(RawTokenSyntax.init(raw:))
91819181
}
91829182

9183-
public var unexpectedBetweenNameAndEllipsis: RawUnexpectedNodesSyntax? {
9183+
public var unexpectedBetweenEachAndName: RawUnexpectedNodesSyntax? {
91849184
layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:))
91859185
}
91869186

9187-
public var ellipsis: RawTokenSyntax? {
9188-
layoutView.children[5].map(RawTokenSyntax.init(raw:))
9187+
public var name: RawTokenSyntax {
9188+
layoutView.children[5].map(RawTokenSyntax.init(raw:))!
91899189
}
91909190

9191-
public var unexpectedBetweenEllipsisAndColon: RawUnexpectedNodesSyntax? {
9191+
public var unexpectedBetweenNameAndColon: RawUnexpectedNodesSyntax? {
91929192
layoutView.children[6].map(RawUnexpectedNodesSyntax.init(raw:))
91939193
}
91949194

Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,9 +1224,9 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
12241224
assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self))
12251225
assertNoError(kind, 1, verify(layout[1], as: RawAttributeListSyntax?.self))
12261226
assertNoError(kind, 2, verify(layout[2], as: RawUnexpectedNodesSyntax?.self))
1227-
assertNoError(kind, 3, verify(layout[3], as: RawTokenSyntax.self))
1227+
assertNoError(kind, 3, verify(layout[3], as: RawTokenSyntax?.self))
12281228
assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self))
1229-
assertNoError(kind, 5, verify(layout[5], as: RawTokenSyntax?.self))
1229+
assertNoError(kind, 5, verify(layout[5], as: RawTokenSyntax.self))
12301230
assertNoError(kind, 6, verify(layout[6], as: RawUnexpectedNodesSyntax?.self))
12311231
assertNoError(kind, 7, verify(layout[7], as: RawTokenSyntax?.self))
12321232
assertNoError(kind, 8, verify(layout[8], as: RawUnexpectedNodesSyntax?.self))

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodes.swift

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -10305,11 +10305,11 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1030510305
leadingTrivia: Trivia? = nil,
1030610306
_ unexpectedBeforeAttributes: UnexpectedNodesSyntax? = nil,
1030710307
attributes: AttributeListSyntax? = nil,
10308-
_ unexpectedBetweenAttributesAndName: UnexpectedNodesSyntax? = nil,
10308+
_ unexpectedBetweenAttributesAndEach: UnexpectedNodesSyntax? = nil,
10309+
each: TokenSyntax? = nil,
10310+
_ unexpectedBetweenEachAndName: UnexpectedNodesSyntax? = nil,
1030910311
name: TokenSyntax = .identifier("IdentifierToken"),
10310-
_ unexpectedBetweenNameAndEllipsis: UnexpectedNodesSyntax? = nil,
10311-
ellipsis: TokenSyntax? = nil,
10312-
_ unexpectedBetweenEllipsisAndColon: UnexpectedNodesSyntax? = nil,
10312+
_ unexpectedBetweenNameAndColon: UnexpectedNodesSyntax? = nil,
1031310313
colon: TokenSyntax? = nil,
1031410314
_ unexpectedBetweenColonAndInheritedType: UnexpectedNodesSyntax? = nil,
1031510315
inheritedType: I? = nil,
@@ -10324,11 +10324,11 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1032410324
let data: SyntaxData = withExtendedLifetime((SyntaxArena(), (
1032510325
unexpectedBeforeAttributes,
1032610326
attributes,
10327-
unexpectedBetweenAttributesAndName,
10327+
unexpectedBetweenAttributesAndEach,
10328+
each,
10329+
unexpectedBetweenEachAndName,
1032810330
name,
10329-
unexpectedBetweenNameAndEllipsis,
10330-
ellipsis,
10331-
unexpectedBetweenEllipsisAndColon,
10331+
unexpectedBetweenNameAndColon,
1033210332
colon,
1033310333
unexpectedBetweenColonAndInheritedType,
1033410334
inheritedType,
@@ -10339,11 +10339,11 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1033910339
let layout: [RawSyntax?] = [
1034010340
unexpectedBeforeAttributes?.raw,
1034110341
attributes?.raw,
10342-
unexpectedBetweenAttributesAndName?.raw,
10342+
unexpectedBetweenAttributesAndEach?.raw,
10343+
each?.raw,
10344+
unexpectedBetweenEachAndName?.raw,
1034310345
name.raw,
10344-
unexpectedBetweenNameAndEllipsis?.raw,
10345-
ellipsis?.raw,
10346-
unexpectedBetweenEllipsisAndColon?.raw,
10346+
unexpectedBetweenNameAndColon?.raw,
1034710347
colon?.raw,
1034810348
unexpectedBetweenColonAndInheritedType?.raw,
1034910349
inheritedType?.raw,
@@ -10377,11 +10377,11 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1037710377
leadingTrivia: Trivia? = nil,
1037810378
_ unexpectedBeforeAttributes: UnexpectedNodesSyntax? = nil,
1037910379
attributes: AttributeListSyntax? = nil,
10380-
_ unexpectedBetweenAttributesAndName: UnexpectedNodesSyntax? = nil,
10380+
_ unexpectedBetweenAttributesAndEach: UnexpectedNodesSyntax? = nil,
10381+
each: TokenSyntax? = nil,
10382+
_ unexpectedBetweenEachAndName: UnexpectedNodesSyntax? = nil,
1038110383
name: TokenSyntax = .identifier("IdentifierToken"),
10382-
_ unexpectedBetweenNameAndEllipsis: UnexpectedNodesSyntax? = nil,
10383-
ellipsis: TokenSyntax? = nil,
10384-
_ unexpectedBetweenEllipsisAndColon: UnexpectedNodesSyntax? = nil,
10384+
_ unexpectedBetweenNameAndColon: UnexpectedNodesSyntax? = nil,
1038510385
colon: TokenSyntax? = nil,
1038610386
_ unexpectedBetweenColonAndInheritedType: UnexpectedNodesSyntax? = nil,
1038710387
inheritedType: MissingTypeSyntax? = nil,
@@ -10395,11 +10395,11 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1039510395
leadingTrivia: leadingTrivia,
1039610396
unexpectedBeforeAttributes,
1039710397
attributes: attributes,
10398-
unexpectedBetweenAttributesAndName,
10398+
unexpectedBetweenAttributesAndEach,
10399+
each: each,
10400+
unexpectedBetweenEachAndName,
1039910401
name: name,
10400-
unexpectedBetweenNameAndEllipsis,
10401-
ellipsis: ellipsis,
10402-
unexpectedBetweenEllipsisAndColon,
10402+
unexpectedBetweenNameAndColon,
1040310403
colon: colon,
1040410404
unexpectedBetweenColonAndInheritedType,
1040510405
inheritedType: Optional<TypeSyntax>.none,
@@ -10447,7 +10447,7 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1044710447
return GenericParameterSyntax(newData)
1044810448
}
1044910449

10450-
public var unexpectedBetweenAttributesAndName: UnexpectedNodesSyntax? {
10450+
public var unexpectedBetweenAttributesAndEach: UnexpectedNodesSyntax? {
1045110451
get {
1045210452
return data.child(at: 2, parent: Syntax(self)).map(UnexpectedNodesSyntax.init)
1045310453
}
@@ -10456,16 +10456,16 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1045610456
}
1045710457
}
1045810458

10459-
public var name: TokenSyntax {
10459+
public var each: TokenSyntax? {
1046010460
get {
10461-
return TokenSyntax(data.child(at: 3, parent: Syntax(self))!)
10461+
return data.child(at: 3, parent: Syntax(self)).map(TokenSyntax.init)
1046210462
}
1046310463
set(value) {
10464-
self = GenericParameterSyntax(data.replacingChild(at: 3, with: value.raw, arena: SyntaxArena()))
10464+
self = GenericParameterSyntax(data.replacingChild(at: 3, with: value?.raw, arena: SyntaxArena()))
1046510465
}
1046610466
}
1046710467

10468-
public var unexpectedBetweenNameAndEllipsis: UnexpectedNodesSyntax? {
10468+
public var unexpectedBetweenEachAndName: UnexpectedNodesSyntax? {
1046910469
get {
1047010470
return data.child(at: 4, parent: Syntax(self)).map(UnexpectedNodesSyntax.init)
1047110471
}
@@ -10474,16 +10474,16 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1047410474
}
1047510475
}
1047610476

10477-
public var ellipsis: TokenSyntax? {
10477+
public var name: TokenSyntax {
1047810478
get {
10479-
return data.child(at: 5, parent: Syntax(self)).map(TokenSyntax.init)
10479+
return TokenSyntax(data.child(at: 5, parent: Syntax(self))!)
1048010480
}
1048110481
set(value) {
10482-
self = GenericParameterSyntax(data.replacingChild(at: 5, with: value?.raw, arena: SyntaxArena()))
10482+
self = GenericParameterSyntax(data.replacingChild(at: 5, with: value.raw, arena: SyntaxArena()))
1048310483
}
1048410484
}
1048510485

10486-
public var unexpectedBetweenEllipsisAndColon: UnexpectedNodesSyntax? {
10486+
public var unexpectedBetweenNameAndColon: UnexpectedNodesSyntax? {
1048710487
get {
1048810488
return data.child(at: 6, parent: Syntax(self)).map(UnexpectedNodesSyntax.init)
1048910489
}
@@ -10550,11 +10550,11 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1055010550
return .layout([
1055110551
\Self.unexpectedBeforeAttributes,
1055210552
\Self.attributes,
10553-
\Self.unexpectedBetweenAttributesAndName,
10553+
\Self.unexpectedBetweenAttributesAndEach,
10554+
\Self.each,
10555+
\Self.unexpectedBetweenEachAndName,
1055410556
\Self.name,
10555-
\Self.unexpectedBetweenNameAndEllipsis,
10556-
\Self.ellipsis,
10557-
\Self.unexpectedBetweenEllipsisAndColon,
10557+
\Self.unexpectedBetweenNameAndColon,
1055810558
\Self.colon,
1055910559
\Self.unexpectedBetweenColonAndInheritedType,
1056010560
\Self.inheritedType,
@@ -10573,11 +10573,11 @@ public struct GenericParameterSyntax: SyntaxProtocol, SyntaxHashable {
1057310573
case 2:
1057410574
return nil
1057510575
case 3:
10576-
return "name"
10576+
return "parameter pack specifier"
1057710577
case 4:
1057810578
return nil
1057910579
case 5:
10580-
return "parameter pack specifier"
10580+
return "name"
1058110581
case 6:
1058210582
return nil
1058310583
case 7:
@@ -10603,11 +10603,11 @@ extension GenericParameterSyntax: CustomReflectable {
1060310603
return Mirror(self, children: [
1060410604
"unexpectedBeforeAttributes": unexpectedBeforeAttributes.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
1060510605
"attributes": attributes.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
10606-
"unexpectedBetweenAttributesAndName": unexpectedBetweenAttributesAndName.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
10606+
"unexpectedBetweenAttributesAndEach": unexpectedBetweenAttributesAndEach.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
10607+
"each": each.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
10608+
"unexpectedBetweenEachAndName": unexpectedBetweenEachAndName.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
1060710609
"name": Syntax(name).asProtocol(SyntaxProtocol.self),
10608-
"unexpectedBetweenNameAndEllipsis": unexpectedBetweenNameAndEllipsis.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
10609-
"ellipsis": ellipsis.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
10610-
"unexpectedBetweenEllipsisAndColon": unexpectedBetweenEllipsisAndColon.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
10610+
"unexpectedBetweenNameAndColon": unexpectedBetweenNameAndColon.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
1061110611
"colon": colon.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
1061210612
"unexpectedBetweenColonAndInheritedType": unexpectedBetweenColonAndInheritedType.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,
1061310613
"inheritedType": inheritedType.map(Syntax.init)?.asProtocol(SyntaxProtocol.self) as Any ,

0 commit comments

Comments
 (0)