Skip to content

Commit 353100d

Browse files
committed
Replace IdentifierList With DesignatedTypeList
1 parent eddb50d commit 353100d

File tree

26 files changed

+639
-301
lines changed

26 files changed

+639
-301
lines changed

Sources/SwiftParser/Declarations.swift

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1888,27 +1888,21 @@ extension Parser {
18881888
let precedenceAndTypes: RawOperatorPrecedenceAndTypesSyntax?
18891889
if let colon = self.consume(if: .colon) {
18901890
let (unexpectedBeforeIdentifier, identifier) = self.expectIdentifier()
1891-
let unexpectedBeforeComma: RawUnexpectedNodesSyntax?
1892-
let comma: RawTokenSyntax?
1893-
let unexpectedBeforeDesignatedType: RawUnexpectedNodesSyntax?
1894-
let designatedType: RawTokenSyntax?
1895-
if self.at(.comma) {
1896-
(unexpectedBeforeComma, comma) = self.expect(.comma)
1897-
(unexpectedBeforeDesignatedType, designatedType) = self.expectIdentifier()
1898-
} else {
1899-
unexpectedBeforeComma = nil
1900-
comma = nil
1901-
unexpectedBeforeDesignatedType = nil
1902-
designatedType = nil
1891+
var types = [RawDesignatedTypeElementSyntax]()
1892+
while let comma = self.consume(if: .comma) {
1893+
let (unexpectedBeforeDesignatedType, designatedType) = self.expectIdentifier()
1894+
types.append(RawDesignatedTypeElementSyntax(
1895+
leadingComma: comma,
1896+
unexpectedBeforeDesignatedType,
1897+
name: designatedType,
1898+
arena: self.arena))
19031899
}
19041900
precedenceAndTypes = RawOperatorPrecedenceAndTypesSyntax(
19051901
colon: colon,
19061902
unexpectedBeforeIdentifier,
19071903
precedenceGroup: identifier,
1908-
unexpectedBeforeComma,
1909-
comma: comma,
1910-
unexpectedBeforeDesignatedType,
1911-
designatedType: designatedType,
1904+
designatedTypes: RawDesignatedTypeListSyntax(
1905+
elements: types, arena: self.arena),
19121906
arena: self.arena)
19131907
} else {
19141908
precedenceAndTypes = nil

Sources/SwiftSyntax/Documentation.docc/gyb_generated/SwiftSyntax.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
234234
- <doc:SwiftSyntax/PatternBindingSyntax>
235235
- <doc:SwiftSyntax/EnumCaseElementListSyntax>
236236
- <doc:SwiftSyntax/EnumCaseElementSyntax>
237+
- <doc:SwiftSyntax/DesignatedTypeListSyntax>
238+
- <doc:SwiftSyntax/DesignatedTypeElementSyntax>
237239
- <doc:SwiftSyntax/PrecedenceGroupNameListSyntax>
238240
- <doc:SwiftSyntax/PrecedenceGroupNameElementSyntax>
239241
- <doc:SwiftSyntax/ObjCSelectorSyntax>
@@ -328,7 +330,8 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
328330
- <doc:SwiftSyntax/PatternBindingListSyntax>
329331
- <doc:SwiftSyntax/EnumCaseElementSyntax>
330332
- <doc:SwiftSyntax/EnumCaseElementListSyntax>
331-
- <doc:SwiftSyntax/IdentifierListSyntax>
333+
- <doc:SwiftSyntax/DesignatedTypeListSyntax>
334+
- <doc:SwiftSyntax/DesignatedTypeElementSyntax>
332335
- <doc:SwiftSyntax/OperatorPrecedenceAndTypesSyntax>
333336
- <doc:SwiftSyntax/PrecedenceGroupAttributeListSyntax>
334337
- <doc:SwiftSyntax/PrecedenceGroupRelationSyntax>

Sources/SwiftSyntax/Raw/gyb_generated/RawSyntaxNodes.swift

Lines changed: 67 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8576,13 +8576,13 @@ public struct RawOperatorDeclSyntax: RawDeclSyntaxNodeProtocol {
85768576
}
85778577

85788578
@_spi(RawSyntax)
8579-
public struct RawIdentifierListSyntax: RawSyntaxNodeProtocol {
8579+
public struct RawDesignatedTypeListSyntax: RawSyntaxNodeProtocol {
85808580
var layoutView: RawSyntaxLayoutView {
85818581
return raw.layoutView!
85828582
}
85838583

85848584
public static func isKindOf(_ raw: RawSyntax) -> Bool {
8585-
return raw.kind == .identifierList
8585+
return raw.kind == .designatedTypeList
85868586
}
85878587

85888588
public var raw: RawSyntax
@@ -8596,9 +8596,9 @@ public struct RawIdentifierListSyntax: RawSyntaxNodeProtocol {
85968596
self.init(raw: other.raw)
85978597
}
85988598

8599-
public init(elements: [RawTokenSyntax], arena: __shared SyntaxArena) {
8599+
public init(elements: [RawDesignatedTypeElementSyntax], arena: __shared SyntaxArena) {
86008600
let raw = RawSyntax.makeLayout(
8601-
kind: .identifierList, uninitializedCount: elements.count, arena: arena) { layout in
8601+
kind: .designatedTypeList, uninitializedCount: elements.count, arena: arena) { layout in
86028602
guard var ptr = layout.baseAddress else { return }
86038603
for elem in elements {
86048604
ptr.initialize(to: elem.raw)
@@ -8608,8 +8608,61 @@ public struct RawIdentifierListSyntax: RawSyntaxNodeProtocol {
86088608
self.init(raw: raw)
86098609
}
86108610

8611-
public var elements: [RawTokenSyntax] {
8612-
layoutView.children.map { RawTokenSyntax(raw: $0!) }
8611+
public var elements: [RawDesignatedTypeElementSyntax] {
8612+
layoutView.children.map { RawDesignatedTypeElementSyntax(raw: $0!) }
8613+
}
8614+
}
8615+
8616+
@_spi(RawSyntax)
8617+
public struct RawDesignatedTypeElementSyntax: RawSyntaxNodeProtocol {
8618+
var layoutView: RawSyntaxLayoutView {
8619+
return raw.layoutView!
8620+
}
8621+
8622+
public static func isKindOf(_ raw: RawSyntax) -> Bool {
8623+
return raw.kind == .designatedTypeElement
8624+
}
8625+
8626+
public var raw: RawSyntax
8627+
init(raw: RawSyntax) {
8628+
assert(Self.isKindOf(raw))
8629+
self.raw = raw
8630+
}
8631+
8632+
public init?<Node: RawSyntaxNodeProtocol>(_ other: Node) {
8633+
guard Self.isKindOf(other.raw) else { return nil }
8634+
self.init(raw: other.raw)
8635+
}
8636+
8637+
public init(
8638+
_ unexpectedBeforeLeadingComma: RawUnexpectedNodesSyntax? = nil,
8639+
leadingComma: RawTokenSyntax,
8640+
_ unexpectedBetweenLeadingCommaAndName: RawUnexpectedNodesSyntax? = nil,
8641+
name: RawTokenSyntax,
8642+
arena: __shared SyntaxArena
8643+
) {
8644+
let raw = RawSyntax.makeLayout(
8645+
kind: .designatedTypeElement, uninitializedCount: 4, arena: arena) { layout in
8646+
layout.initialize(repeating: nil)
8647+
layout[0] = unexpectedBeforeLeadingComma?.raw
8648+
layout[1] = leadingComma.raw
8649+
layout[2] = unexpectedBetweenLeadingCommaAndName?.raw
8650+
layout[3] = name.raw
8651+
}
8652+
self.init(raw: raw)
8653+
}
8654+
8655+
public var unexpectedBeforeLeadingComma: RawUnexpectedNodesSyntax? {
8656+
layoutView.children[0].map(RawUnexpectedNodesSyntax.init(raw:))
8657+
}
8658+
public var leadingComma: RawTokenSyntax {
8659+
layoutView.children[1].map(RawTokenSyntax.init(raw:))!
8660+
}
8661+
public var unexpectedBetweenLeadingCommaAndName: RawUnexpectedNodesSyntax? {
8662+
layoutView.children[2].map(RawUnexpectedNodesSyntax.init(raw:))
8663+
}
8664+
public var name: RawTokenSyntax {
8665+
layoutView.children[3].map(RawTokenSyntax.init(raw:))!
86138666
}
86148667
}
86158668

@@ -8639,23 +8692,19 @@ public struct RawOperatorPrecedenceAndTypesSyntax: RawSyntaxNodeProtocol {
86398692
colon: RawTokenSyntax,
86408693
_ unexpectedBetweenColonAndPrecedenceGroup: RawUnexpectedNodesSyntax? = nil,
86418694
precedenceGroup: RawTokenSyntax,
8642-
_ unexpectedBetweenPrecedenceGroupAndComma: RawUnexpectedNodesSyntax? = nil,
8643-
comma: RawTokenSyntax?,
8644-
_ unexpectedBetweenCommaAndDesignatedType: RawUnexpectedNodesSyntax? = nil,
8645-
designatedType: RawTokenSyntax?,
8695+
_ unexpectedBetweenPrecedenceGroupAndDesignatedTypes: RawUnexpectedNodesSyntax? = nil,
8696+
designatedTypes: RawDesignatedTypeListSyntax,
86468697
arena: __shared SyntaxArena
86478698
) {
86488699
let raw = RawSyntax.makeLayout(
8649-
kind: .operatorPrecedenceAndTypes, uninitializedCount: 8, arena: arena) { layout in
8700+
kind: .operatorPrecedenceAndTypes, uninitializedCount: 6, arena: arena) { layout in
86508701
layout.initialize(repeating: nil)
86518702
layout[0] = unexpectedBeforeColon?.raw
86528703
layout[1] = colon.raw
86538704
layout[2] = unexpectedBetweenColonAndPrecedenceGroup?.raw
86548705
layout[3] = precedenceGroup.raw
8655-
layout[4] = unexpectedBetweenPrecedenceGroupAndComma?.raw
8656-
layout[5] = comma?.raw
8657-
layout[6] = unexpectedBetweenCommaAndDesignatedType?.raw
8658-
layout[7] = designatedType?.raw
8706+
layout[4] = unexpectedBetweenPrecedenceGroupAndDesignatedTypes?.raw
8707+
layout[5] = designatedTypes.raw
86598708
}
86608709
self.init(raw: raw)
86618710
}
@@ -8672,17 +8721,11 @@ public struct RawOperatorPrecedenceAndTypesSyntax: RawSyntaxNodeProtocol {
86728721
public var precedenceGroup: RawTokenSyntax {
86738722
layoutView.children[3].map(RawTokenSyntax.init(raw:))!
86748723
}
8675-
public var unexpectedBetweenPrecedenceGroupAndComma: RawUnexpectedNodesSyntax? {
8724+
public var unexpectedBetweenPrecedenceGroupAndDesignatedTypes: RawUnexpectedNodesSyntax? {
86768725
layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:))
86778726
}
8678-
public var comma: RawTokenSyntax? {
8679-
layoutView.children[5].map(RawTokenSyntax.init(raw:))
8680-
}
8681-
public var unexpectedBetweenCommaAndDesignatedType: RawUnexpectedNodesSyntax? {
8682-
layoutView.children[6].map(RawUnexpectedNodesSyntax.init(raw:))
8683-
}
8684-
public var designatedType: RawTokenSyntax? {
8685-
layoutView.children[7].map(RawTokenSyntax.init(raw:))
8727+
public var designatedTypes: RawDesignatedTypeListSyntax {
8728+
layoutView.children[5].map(RawDesignatedTypeListSyntax.init(raw:))!
86868729
}
86878730
}
86888731

Sources/SwiftSyntax/Raw/gyb_generated/RawSyntaxValidation.swift

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,21 +1230,26 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
12301230
_verify(layout[8], as: RawUnexpectedNodesSyntax?.self)
12311231
_verify(layout[9], as: RawOperatorPrecedenceAndTypesSyntax?.self)
12321232
break
1233-
case .identifierList:
1233+
case .designatedTypeList:
12341234
for element in layout {
1235-
_verify(element, as: RawTokenSyntax.self)
1235+
_verify(element, as: RawDesignatedTypeElementSyntax.self)
12361236
}
12371237
break
1238+
case .designatedTypeElement:
1239+
assert(layout.count == 4)
1240+
_verify(layout[0], as: RawUnexpectedNodesSyntax?.self)
1241+
_verify(layout[1], as: RawTokenSyntax.self)
1242+
_verify(layout[2], as: RawUnexpectedNodesSyntax?.self)
1243+
_verify(layout[3], as: RawTokenSyntax.self)
1244+
break
12381245
case .operatorPrecedenceAndTypes:
1239-
assert(layout.count == 8)
1246+
assert(layout.count == 6)
12401247
_verify(layout[0], as: RawUnexpectedNodesSyntax?.self)
12411248
_verify(layout[1], as: RawTokenSyntax.self)
12421249
_verify(layout[2], as: RawUnexpectedNodesSyntax?.self)
12431250
_verify(layout[3], as: RawTokenSyntax.self)
12441251
_verify(layout[4], as: RawUnexpectedNodesSyntax?.self)
1245-
_verify(layout[5], as: RawTokenSyntax?.self)
1246-
_verify(layout[6], as: RawUnexpectedNodesSyntax?.self)
1247-
_verify(layout[7], as: RawTokenSyntax?.self)
1252+
_verify(layout[5], as: RawDesignatedTypeListSyntax.self)
12481253
break
12491254
case .precedenceGroupDecl:
12501255
assert(layout.count == 14)

Sources/SwiftSyntax/gyb_generated/Misc.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,9 @@ extension Syntax {
313313
return node
314314
case .operatorDecl(let node):
315315
return node
316-
case .identifierList(let node):
316+
case .designatedTypeList(let node):
317+
return node
318+
case .designatedTypeElement(let node):
317319
return node
318320
case .operatorPrecedenceAndTypes(let node):
319321
return node
@@ -716,7 +718,8 @@ extension SyntaxKind {
716718
case .enumCaseDecl: return EnumCaseDeclSyntax.self
717719
case .enumDecl: return EnumDeclSyntax.self
718720
case .operatorDecl: return OperatorDeclSyntax.self
719-
case .identifierList: return IdentifierListSyntax.self
721+
case .designatedTypeList: return DesignatedTypeListSyntax.self
722+
case .designatedTypeElement: return DesignatedTypeElementSyntax.self
720723
case .operatorPrecedenceAndTypes: return OperatorPrecedenceAndTypesSyntax.self
721724
case .precedenceGroupDecl: return PrecedenceGroupDeclSyntax.self
722725
case .precedenceGroupAttributeList: return PrecedenceGroupAttributeListSyntax.self

Sources/SwiftSyntax/gyb_generated/SyntaxAnyVisitor.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,11 +1055,18 @@ open class SyntaxAnyVisitor: SyntaxVisitor {
10551055
override open func visitPost(_ node: OperatorDeclSyntax) {
10561056
visitAnyPost(node._syntaxNode)
10571057
}
1058-
override open func visit(_ node: IdentifierListSyntax) -> SyntaxVisitorContinueKind {
1058+
override open func visit(_ node: DesignatedTypeListSyntax) -> SyntaxVisitorContinueKind {
10591059
return visitAny(node._syntaxNode)
10601060
}
10611061

1062-
override open func visitPost(_ node: IdentifierListSyntax) {
1062+
override open func visitPost(_ node: DesignatedTypeListSyntax) {
1063+
visitAnyPost(node._syntaxNode)
1064+
}
1065+
override open func visit(_ node: DesignatedTypeElementSyntax) -> SyntaxVisitorContinueKind {
1066+
return visitAny(node._syntaxNode)
1067+
}
1068+
1069+
override open func visitPost(_ node: DesignatedTypeElementSyntax) {
10631070
visitAnyPost(node._syntaxNode)
10641071
}
10651072
override open func visit(_ node: OperatorPrecedenceAndTypesSyntax) -> SyntaxVisitorContinueKind {

0 commit comments

Comments
 (0)