Skip to content

Commit d3fa94c

Browse files
authored
Merge pull request #374 from CodaFi/parse-tial-credit
2 parents b21da9a + 530d9a5 commit d3fa94c

File tree

13 files changed

+437
-12
lines changed

13 files changed

+437
-12
lines changed

Sources/SwiftSyntax/gyb_generated/Misc.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,6 +1255,12 @@ extension SyntaxNode {
12551255
return ConformanceRequirementSyntax(asSyntaxData)
12561256
}
12571257

1258+
public var isPrimaryAssociatedTypeClause: Bool { return raw.kind == .primaryAssociatedTypeClause }
1259+
public var asPrimaryAssociatedTypeClause: PrimaryAssociatedTypeClauseSyntax? {
1260+
guard isPrimaryAssociatedTypeClause else { return nil }
1261+
return PrimaryAssociatedTypeClauseSyntax(asSyntaxData)
1262+
}
1263+
12581264
public var isSimpleTypeIdentifier: Bool { return raw.kind == .simpleTypeIdentifier }
12591265
public var asSimpleTypeIdentifier: SimpleTypeIdentifierSyntax? {
12601266
guard isSimpleTypeIdentifier else { return nil }
@@ -1917,6 +1923,8 @@ extension Syntax {
19171923
return node
19181924
case .conformanceRequirement(let node):
19191925
return node
1926+
case .primaryAssociatedTypeClause(let node):
1927+
return node
19201928
case .simpleTypeIdentifier(let node):
19211929
return node
19221930
case .memberTypeIdentifier(let node):

Sources/SwiftSyntax/gyb_generated/SyntaxAnyVisitor.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1506,6 +1506,13 @@ open class SyntaxAnyVisitor: SyntaxVisitor {
15061506
override open func visitPost(_ node: ConformanceRequirementSyntax) {
15071507
visitAnyPost(node._syntaxNode)
15081508
}
1509+
override open func visit(_ node: PrimaryAssociatedTypeClauseSyntax) -> SyntaxVisitorContinueKind {
1510+
return visitAny(node._syntaxNode)
1511+
}
1512+
1513+
override open func visitPost(_ node: PrimaryAssociatedTypeClauseSyntax) {
1514+
visitAnyPost(node._syntaxNode)
1515+
}
15091516
override open func visit(_ node: SimpleTypeIdentifierSyntax) -> SyntaxVisitorContinueKind {
15101517
return visitAny(node._syntaxNode)
15111518
}

Sources/SwiftSyntax/gyb_generated/SyntaxBuilders.swift

Lines changed: 68 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4207,7 +4207,7 @@ extension StructDeclSyntax {
42074207

42084208
public struct ProtocolDeclSyntaxBuilder {
42094209
private var layout =
4210-
Array<RawSyntax?>(repeating: nil, count: 7)
4210+
Array<RawSyntax?>(repeating: nil, count: 8)
42114211

42124212
internal init() {}
42134213

@@ -4243,6 +4243,11 @@ public struct ProtocolDeclSyntaxBuilder {
42434243
layout[idx] = node.raw
42444244
}
42454245

4246+
public mutating func usePrimaryAssociatedTypeClause(_ node: PrimaryAssociatedTypeClauseSyntax) {
4247+
let idx = ProtocolDeclSyntax.Cursor.primaryAssociatedTypeClause.rawValue
4248+
layout[idx] = node.raw
4249+
}
4250+
42464251
public mutating func useInheritanceClause(_ node: TypeInheritanceClauseSyntax) {
42474252
let idx = ProtocolDeclSyntax.Cursor.inheritanceClause.rawValue
42484253
layout[idx] = node.raw
@@ -4265,8 +4270,8 @@ public struct ProtocolDeclSyntaxBuilder {
42654270
if (layout[3] == nil) {
42664271
layout[3] = RawSyntax.missingToken(TokenKind.identifier(""))
42674272
}
4268-
if (layout[6] == nil) {
4269-
layout[6] = RawSyntax.missing(SyntaxKind.memberDeclBlock)
4273+
if (layout[7] == nil) {
4274+
layout[7] = RawSyntax.missing(SyntaxKind.memberDeclBlock)
42704275
}
42714276

42724277
return .forRoot(RawSyntax.createAndCalcLength(kind: .protocolDecl,
@@ -9249,6 +9254,66 @@ extension ConformanceRequirementSyntax {
92499254
}
92509255
}
92519256

9257+
public struct PrimaryAssociatedTypeClauseSyntaxBuilder {
9258+
private var layout =
9259+
Array<RawSyntax?>(repeating: nil, count: 3)
9260+
9261+
internal init() {}
9262+
9263+
public mutating func useLeftAngleBracket(_ node: TokenSyntax) {
9264+
let idx = PrimaryAssociatedTypeClauseSyntax.Cursor.leftAngleBracket.rawValue
9265+
layout[idx] = node.raw
9266+
}
9267+
9268+
public mutating func addPrimaryAssociatedType(_ elt: PrimaryAssociatedTypeSyntax) {
9269+
let idx = PrimaryAssociatedTypeClauseSyntax.Cursor.primaryAssociatedTypeList.rawValue
9270+
if let list = layout[idx] {
9271+
layout[idx] = list.appending(elt.raw)
9272+
} else {
9273+
layout[idx] = RawSyntax.create(kind: SyntaxKind.primaryAssociatedTypeList,
9274+
layout: [elt.raw], length: elt.raw.totalLength,
9275+
presence: SourcePresence.present)
9276+
}
9277+
}
9278+
9279+
public mutating func useRightAngleBracket(_ node: TokenSyntax) {
9280+
let idx = PrimaryAssociatedTypeClauseSyntax.Cursor.rightAngleBracket.rawValue
9281+
layout[idx] = node.raw
9282+
}
9283+
9284+
internal mutating func buildData() -> SyntaxData {
9285+
if (layout[0] == nil) {
9286+
layout[0] = RawSyntax.missingToken(TokenKind.leftAngle)
9287+
}
9288+
if (layout[1] == nil) {
9289+
layout[1] = RawSyntax.missing(SyntaxKind.primaryAssociatedTypeList)
9290+
}
9291+
if (layout[2] == nil) {
9292+
layout[2] = RawSyntax.missingToken(TokenKind.rightAngle)
9293+
}
9294+
9295+
return .forRoot(RawSyntax.createAndCalcLength(kind: .primaryAssociatedTypeClause,
9296+
layout: layout, presence: .present))
9297+
}
9298+
}
9299+
9300+
extension PrimaryAssociatedTypeClauseSyntax {
9301+
/// Creates a `PrimaryAssociatedTypeClauseSyntax` using the provided build function.
9302+
/// - Parameter:
9303+
/// - build: A closure that will be invoked in order to initialize
9304+
/// the fields of the syntax node.
9305+
/// This closure is passed a `PrimaryAssociatedTypeClauseSyntaxBuilder` which you can use to
9306+
/// incrementally build the structure of the node.
9307+
/// - Returns: A `PrimaryAssociatedTypeClauseSyntax` with all the fields populated in the builder
9308+
/// closure.
9309+
public init(_ build: (inout PrimaryAssociatedTypeClauseSyntaxBuilder) -> Void) {
9310+
var builder = PrimaryAssociatedTypeClauseSyntaxBuilder()
9311+
build(&builder)
9312+
let data = builder.buildData()
9313+
self.init(data)
9314+
}
9315+
}
9316+
92529317
public struct SimpleTypeIdentifierSyntaxBuilder {
92539318
private var layout =
92549319
Array<RawSyntax?>(repeating: nil, count: 2)

Sources/SwiftSyntax/gyb_generated/SyntaxEnum.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ public enum SyntaxEnum {
227227
case primaryAssociatedType(PrimaryAssociatedTypeSyntax)
228228
case genericParameterClause(GenericParameterClauseSyntax)
229229
case conformanceRequirement(ConformanceRequirementSyntax)
230+
case primaryAssociatedTypeClause(PrimaryAssociatedTypeClauseSyntax)
230231
case simpleTypeIdentifier(SimpleTypeIdentifierSyntax)
231232
case memberTypeIdentifier(MemberTypeIdentifierSyntax)
232233
case classRestrictionType(ClassRestrictionTypeSyntax)
@@ -696,6 +697,8 @@ public extension Syntax {
696697
return .genericParameterClause(GenericParameterClauseSyntax(self)!)
697698
case .conformanceRequirement:
698699
return .conformanceRequirement(ConformanceRequirementSyntax(self)!)
700+
case .primaryAssociatedTypeClause:
701+
return .primaryAssociatedTypeClause(PrimaryAssociatedTypeClauseSyntax(self)!)
699702
case .simpleTypeIdentifier:
700703
return .simpleTypeIdentifier(SimpleTypeIdentifierSyntax(self)!)
701704
case .memberTypeIdentifier:

Sources/SwiftSyntax/gyb_generated/SyntaxFactory.swift

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1937,12 +1937,13 @@ public enum SyntaxFactory {
19371937
], length: .zero, presence: .present))
19381938
return StructDeclSyntax(data)
19391939
}
1940-
public static func makeProtocolDecl(attributes: AttributeListSyntax?, modifiers: ModifierListSyntax?, protocolKeyword: TokenSyntax, identifier: TokenSyntax, inheritanceClause: TypeInheritanceClauseSyntax?, genericWhereClause: GenericWhereClauseSyntax?, members: MemberDeclBlockSyntax) -> ProtocolDeclSyntax {
1940+
public static func makeProtocolDecl(attributes: AttributeListSyntax?, modifiers: ModifierListSyntax?, protocolKeyword: TokenSyntax, identifier: TokenSyntax, primaryAssociatedTypeClause: PrimaryAssociatedTypeClauseSyntax?, inheritanceClause: TypeInheritanceClauseSyntax?, genericWhereClause: GenericWhereClauseSyntax?, members: MemberDeclBlockSyntax) -> ProtocolDeclSyntax {
19411941
let layout: [RawSyntax?] = [
19421942
attributes?.raw,
19431943
modifiers?.raw,
19441944
protocolKeyword.raw,
19451945
identifier.raw,
1946+
primaryAssociatedTypeClause?.raw,
19461947
inheritanceClause?.raw,
19471948
genericWhereClause?.raw,
19481949
members.raw,
@@ -1962,6 +1963,7 @@ public enum SyntaxFactory {
19621963
RawSyntax.missingToken(TokenKind.identifier("")),
19631964
nil,
19641965
nil,
1966+
nil,
19651967
RawSyntax.missing(SyntaxKind.memberDeclBlock),
19661968
], length: .zero, presence: .present))
19671969
return ProtocolDeclSyntax(data)
@@ -4177,6 +4179,27 @@ public enum SyntaxFactory {
41774179
], length: .zero, presence: .present))
41784180
return ConformanceRequirementSyntax(data)
41794181
}
4182+
public static func makePrimaryAssociatedTypeClause(leftAngleBracket: TokenSyntax, primaryAssociatedTypeList: PrimaryAssociatedTypeListSyntax, rightAngleBracket: TokenSyntax) -> PrimaryAssociatedTypeClauseSyntax {
4183+
let layout: [RawSyntax?] = [
4184+
leftAngleBracket.raw,
4185+
primaryAssociatedTypeList.raw,
4186+
rightAngleBracket.raw,
4187+
]
4188+
let raw = RawSyntax.createAndCalcLength(kind: SyntaxKind.primaryAssociatedTypeClause,
4189+
layout: layout, presence: SourcePresence.present)
4190+
let data = SyntaxData.forRoot(raw)
4191+
return PrimaryAssociatedTypeClauseSyntax(data)
4192+
}
4193+
4194+
public static func makeBlankPrimaryAssociatedTypeClause() -> PrimaryAssociatedTypeClauseSyntax {
4195+
let data = SyntaxData.forRoot(RawSyntax.create(kind: .primaryAssociatedTypeClause,
4196+
layout: [
4197+
RawSyntax.missingToken(TokenKind.leftAngle),
4198+
RawSyntax.missing(SyntaxKind.primaryAssociatedTypeList),
4199+
RawSyntax.missingToken(TokenKind.rightAngle),
4200+
], length: .zero, presence: .present))
4201+
return PrimaryAssociatedTypeClauseSyntax(data)
4202+
}
41804203
public static func makeSimpleTypeIdentifier(name: TokenSyntax, genericArgumentClause: GenericArgumentClauseSyntax?) -> SimpleTypeIdentifierSyntax {
41814204
let layout: [RawSyntax?] = [
41824205
name.raw,

Sources/SwiftSyntax/gyb_generated/SyntaxKind.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ internal enum SyntaxKind: CSyntaxKind {
227227
case primaryAssociatedType = 255
228228
case genericParameterClause = 151
229229
case conformanceRequirement = 152
230+
case primaryAssociatedTypeClause = 256
230231
case simpleTypeIdentifier = 212
231232
case memberTypeIdentifier = 213
232233
case classRestrictionType = 214

Sources/SwiftSyntax/gyb_generated/SyntaxRewriter.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1465,6 +1465,13 @@ open class SyntaxRewriter {
14651465
return Syntax(visitChildren(node))
14661466
}
14671467

1468+
/// Visit a `PrimaryAssociatedTypeClauseSyntax`.
1469+
/// - Parameter node: the node that is being visited
1470+
/// - Returns: the rewritten node
1471+
open func visit(_ node: PrimaryAssociatedTypeClauseSyntax) -> Syntax {
1472+
return Syntax(visitChildren(node))
1473+
}
1474+
14681475
/// Visit a `SimpleTypeIdentifierSyntax`.
14691476
/// - Parameter node: the node that is being visited
14701477
/// - Returns: the rewritten node
@@ -3875,6 +3882,16 @@ open class SyntaxRewriter {
38753882
return visit(node)
38763883
}
38773884

3885+
/// Implementation detail of visit(_:). Do not call directly.
3886+
private func visitImplPrimaryAssociatedTypeClauseSyntax(_ data: SyntaxData) -> Syntax {
3887+
let node = PrimaryAssociatedTypeClauseSyntax(data)
3888+
// Accessing _syntaxNode directly is faster than calling Syntax(node)
3889+
visitPre(node._syntaxNode)
3890+
defer { visitPost(node._syntaxNode) }
3891+
if let newNode = visitAny(node._syntaxNode) { return newNode }
3892+
return visit(node)
3893+
}
3894+
38783895
/// Implementation detail of visit(_:). Do not call directly.
38793896
private func visitImplSimpleTypeIdentifierSyntax(_ data: SyntaxData) -> Syntax {
38803897
let node = SimpleTypeIdentifierSyntax(data)
@@ -4719,6 +4736,8 @@ open class SyntaxRewriter {
47194736
return visitImplGenericParameterClauseSyntax
47204737
case .conformanceRequirement:
47214738
return visitImplConformanceRequirementSyntax
4739+
case .primaryAssociatedTypeClause:
4740+
return visitImplPrimaryAssociatedTypeClauseSyntax
47224741
case .simpleTypeIdentifier:
47234742
return visitImplSimpleTypeIdentifierSyntax
47244743
case .memberTypeIdentifier:
@@ -5230,6 +5249,8 @@ open class SyntaxRewriter {
52305249
return visitImplGenericParameterClauseSyntax(data)
52315250
case .conformanceRequirement:
52325251
return visitImplConformanceRequirementSyntax(data)
5252+
case .primaryAssociatedTypeClause:
5253+
return visitImplPrimaryAssociatedTypeClauseSyntax(data)
52335254
case .simpleTypeIdentifier:
52345255
return visitImplSimpleTypeIdentifierSyntax(data)
52355256
case .memberTypeIdentifier:

Sources/SwiftSyntax/gyb_generated/SyntaxVisitor.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2092,6 +2092,16 @@ open class SyntaxVisitor {
20922092
/// The function called after visiting `ConformanceRequirementSyntax` and its descendents.
20932093
/// - node: the node we just finished visiting.
20942094
open func visitPost(_ node: ConformanceRequirementSyntax) {}
2095+
/// Visiting `PrimaryAssociatedTypeClauseSyntax` specifically.
2096+
/// - Parameter node: the node we are visiting.
2097+
/// - Returns: how should we continue visiting.
2098+
open func visit(_ node: PrimaryAssociatedTypeClauseSyntax) -> SyntaxVisitorContinueKind {
2099+
return .visitChildren
2100+
}
2101+
2102+
/// The function called after visiting `PrimaryAssociatedTypeClauseSyntax` and its descendents.
2103+
/// - node: the node we just finished visiting.
2104+
open func visitPost(_ node: PrimaryAssociatedTypeClauseSyntax) {}
20952105
/// Visiting `SimpleTypeIdentifierSyntax` specifically.
20962106
/// - Parameter node: the node we are visiting.
20972107
/// - Returns: how should we continue visiting.
@@ -4806,6 +4816,17 @@ open class SyntaxVisitor {
48064816
visitPost(node)
48074817
}
48084818

4819+
/// Implementation detail of doVisit(_:_:). Do not call directly.
4820+
private func visitImplPrimaryAssociatedTypeClauseSyntax(_ data: SyntaxData) {
4821+
let node = PrimaryAssociatedTypeClauseSyntax(data)
4822+
let needsChildren = (visit(node) == .visitChildren)
4823+
// Avoid calling into visitChildren if possible.
4824+
if needsChildren && node.raw.numberOfChildren > 0 {
4825+
visitChildren(node)
4826+
}
4827+
visitPost(node)
4828+
}
4829+
48094830
/// Implementation detail of doVisit(_:_:). Do not call directly.
48104831
private func visitImplSimpleTypeIdentifierSyntax(_ data: SyntaxData) {
48114832
let node = SimpleTypeIdentifierSyntax(data)
@@ -5655,6 +5676,8 @@ open class SyntaxVisitor {
56555676
visitImplGenericParameterClauseSyntax(data)
56565677
case .conformanceRequirement:
56575678
visitImplConformanceRequirementSyntax(data)
5679+
case .primaryAssociatedTypeClause:
5680+
visitImplPrimaryAssociatedTypeClauseSyntax(data)
56585681
case .simpleTypeIdentifier:
56595682
visitImplSimpleTypeIdentifierSyntax(data)
56605683
case .memberTypeIdentifier:

0 commit comments

Comments
 (0)