Skip to content

Commit 5114b3e

Browse files
committed
Update for the availability in @_specialize attribute change
1 parent 592fefa commit 5114b3e

File tree

12 files changed

+417
-1
lines changed

12 files changed

+417
-1
lines changed

Sources/SwiftSyntax/gyb_generated/Misc.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,12 @@ extension SyntaxNode {
871871
return SpecializeAttributeSpecListSyntax(asSyntaxData)
872872
}
873873

874+
public var isAvailabilityEntry: Bool { return raw.kind == .availabilityEntry }
875+
public var asAvailabilityEntry: AvailabilityEntrySyntax? {
876+
guard isAvailabilityEntry else { return nil }
877+
return AvailabilityEntrySyntax(asSyntaxData)
878+
}
879+
874880
public var isLabeledSpecializeEntry: Bool { return raw.kind == .labeledSpecializeEntry }
875881
public var asLabeledSpecializeEntry: LabeledSpecializeEntrySyntax? {
876882
guard isLabeledSpecializeEntry else { return nil }
@@ -1765,6 +1771,8 @@ extension Syntax {
17651771
return node
17661772
case .specializeAttributeSpecList(let node):
17671773
return node
1774+
case .availabilityEntry(let node):
1775+
return node
17681776
case .labeledSpecializeEntry(let node):
17691777
return node
17701778
case .targetFunctionEntry(let node):

Sources/SwiftSyntax/gyb_generated/SyntaxAnyVisitor.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,6 +1058,13 @@ open class SyntaxAnyVisitor: SyntaxVisitor {
10581058
override open func visitPost(_ node: SpecializeAttributeSpecListSyntax) {
10591059
visitAnyPost(node._syntaxNode)
10601060
}
1061+
override open func visit(_ node: AvailabilityEntrySyntax) -> SyntaxVisitorContinueKind {
1062+
return visitAny(node._syntaxNode)
1063+
}
1064+
1065+
override open func visitPost(_ node: AvailabilityEntrySyntax) {
1066+
visitAnyPost(node._syntaxNode)
1067+
}
10611068
override open func visit(_ node: LabeledSpecializeEntrySyntax) -> SyntaxVisitorContinueKind {
10621069
return visitAny(node._syntaxNode)
10631070
}

Sources/SwiftSyntax/gyb_generated/SyntaxBuilders.swift

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6245,6 +6245,74 @@ extension AttributeSyntax {
62456245
}
62466246
}
62476247

6248+
public struct AvailabilityEntrySyntaxBuilder {
6249+
private var layout =
6250+
Array<RawSyntax?>(repeating: nil, count: 4)
6251+
6252+
internal init() {}
6253+
6254+
public mutating func useLabel(_ node: TokenSyntax) {
6255+
let idx = AvailabilityEntrySyntax.Cursor.label.rawValue
6256+
layout[idx] = node.raw
6257+
}
6258+
6259+
public mutating func useColon(_ node: TokenSyntax) {
6260+
let idx = AvailabilityEntrySyntax.Cursor.colon.rawValue
6261+
layout[idx] = node.raw
6262+
}
6263+
6264+
public mutating func addAvailability(_ elt: AvailabilityArgumentSyntax) {
6265+
let idx = AvailabilityEntrySyntax.Cursor.availabilityList.rawValue
6266+
if let list = layout[idx] {
6267+
layout[idx] = list.appending(elt.raw)
6268+
} else {
6269+
layout[idx] = RawSyntax.create(kind: SyntaxKind.availabilitySpecList,
6270+
layout: [elt.raw], length: elt.raw.totalLength,
6271+
presence: SourcePresence.present)
6272+
}
6273+
}
6274+
6275+
public mutating func useSemicolon(_ node: TokenSyntax) {
6276+
let idx = AvailabilityEntrySyntax.Cursor.semicolon.rawValue
6277+
layout[idx] = node.raw
6278+
}
6279+
6280+
internal mutating func buildData() -> SyntaxData {
6281+
if (layout[0] == nil) {
6282+
layout[0] = RawSyntax.missingToken(TokenKind.identifier(""))
6283+
}
6284+
if (layout[1] == nil) {
6285+
layout[1] = RawSyntax.missingToken(TokenKind.colon)
6286+
}
6287+
if (layout[2] == nil) {
6288+
layout[2] = RawSyntax.missing(SyntaxKind.availabilitySpecList)
6289+
}
6290+
if (layout[3] == nil) {
6291+
layout[3] = RawSyntax.missingToken(TokenKind.semicolon)
6292+
}
6293+
6294+
return .forRoot(RawSyntax.createAndCalcLength(kind: .availabilityEntry,
6295+
layout: layout, presence: .present))
6296+
}
6297+
}
6298+
6299+
extension AvailabilityEntrySyntax {
6300+
/// Creates a `AvailabilityEntrySyntax` using the provided build function.
6301+
/// - Parameter:
6302+
/// - build: A closure that will be invoked in order to initialize
6303+
/// the fields of the syntax node.
6304+
/// This closure is passed a `AvailabilityEntrySyntaxBuilder` which you can use to
6305+
/// incrementally build the structure of the node.
6306+
/// - Returns: A `AvailabilityEntrySyntax` with all the fields populated in the builder
6307+
/// closure.
6308+
public init(_ build: (inout AvailabilityEntrySyntaxBuilder) -> Void) {
6309+
var builder = AvailabilityEntrySyntaxBuilder()
6310+
build(&builder)
6311+
let data = builder.buildData()
6312+
self.init(data)
6313+
}
6314+
}
6315+
62486316
public struct LabeledSpecializeEntrySyntaxBuilder {
62496317
private var layout =
62506318
Array<RawSyntax?>(repeating: nil, count: 4)

Sources/SwiftSyntax/gyb_generated/SyntaxEnum.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ public enum SyntaxEnum {
163163
case attribute(AttributeSyntax)
164164
case attributeList(AttributeListSyntax)
165165
case specializeAttributeSpecList(SpecializeAttributeSpecListSyntax)
166+
case availabilityEntry(AvailabilityEntrySyntax)
166167
case labeledSpecializeEntry(LabeledSpecializeEntrySyntax)
167168
case targetFunctionEntry(TargetFunctionEntrySyntax)
168169
case namedAttributeStringArgument(NamedAttributeStringArgumentSyntax)
@@ -564,6 +565,8 @@ public extension Syntax {
564565
return .attributeList(AttributeListSyntax(self)!)
565566
case .specializeAttributeSpecList:
566567
return .specializeAttributeSpecList(SpecializeAttributeSpecListSyntax(self)!)
568+
case .availabilityEntry:
569+
return .availabilityEntry(AvailabilityEntrySyntax(self)!)
567570
case .labeledSpecializeEntry:
568571
return .labeledSpecializeEntry(LabeledSpecializeEntrySyntax(self)!)
569572
case .targetFunctionEntry:

Sources/SwiftSyntax/gyb_generated/SyntaxFactory.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2857,6 +2857,29 @@ public enum SyntaxFactory {
28572857
], length: .zero, presence: .present))
28582858
return SpecializeAttributeSpecListSyntax(data)
28592859
}
2860+
public static func makeAvailabilityEntry(label: TokenSyntax, colon: TokenSyntax, availabilityList: AvailabilitySpecListSyntax, semicolon: TokenSyntax) -> AvailabilityEntrySyntax {
2861+
let layout: [RawSyntax?] = [
2862+
label.raw,
2863+
colon.raw,
2864+
availabilityList.raw,
2865+
semicolon.raw,
2866+
]
2867+
let raw = RawSyntax.createAndCalcLength(kind: SyntaxKind.availabilityEntry,
2868+
layout: layout, presence: SourcePresence.present)
2869+
let data = SyntaxData.forRoot(raw)
2870+
return AvailabilityEntrySyntax(data)
2871+
}
2872+
2873+
public static func makeBlankAvailabilityEntry() -> AvailabilityEntrySyntax {
2874+
let data = SyntaxData.forRoot(RawSyntax.create(kind: .availabilityEntry,
2875+
layout: [
2876+
RawSyntax.missingToken(TokenKind.identifier("")),
2877+
RawSyntax.missingToken(TokenKind.colon),
2878+
RawSyntax.missing(SyntaxKind.availabilitySpecList),
2879+
RawSyntax.missingToken(TokenKind.semicolon),
2880+
], length: .zero, presence: .present))
2881+
return AvailabilityEntrySyntax(data)
2882+
}
28602883
public static func makeLabeledSpecializeEntry(label: TokenSyntax, colon: TokenSyntax, value: TokenSyntax, trailingComma: TokenSyntax?) -> LabeledSpecializeEntrySyntax {
28612884
let layout: [RawSyntax?] = [
28622885
label.raw,

Sources/SwiftSyntax/gyb_generated/SyntaxKind.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ internal enum SyntaxKind: CSyntaxKind {
163163
case attribute = 132
164164
case attributeList = 187
165165
case specializeAttributeSpecList = 188
166+
case availabilityEntry = 252
166167
case labeledSpecializeEntry = 133
167168
case targetFunctionEntry = 248
168169
case namedAttributeStringArgument = 227

Sources/SwiftSyntax/gyb_generated/SyntaxRewriter.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,13 @@ open class SyntaxRewriter {
10171017
return Syntax(visitChildren(node))
10181018
}
10191019

1020+
/// Visit a `AvailabilityEntrySyntax`.
1021+
/// - Parameter node: the node that is being visited
1022+
/// - Returns: the rewritten node
1023+
open func visit(_ node: AvailabilityEntrySyntax) -> Syntax {
1024+
return Syntax(visitChildren(node))
1025+
}
1026+
10201027
/// Visit a `LabeledSpecializeEntrySyntax`.
10211028
/// - Parameter node: the node that is being visited
10221029
/// - Returns: the rewritten node
@@ -3207,6 +3214,16 @@ open class SyntaxRewriter {
32073214
return visit(node)
32083215
}
32093216

3217+
/// Implementation detail of visit(_:). Do not call directly.
3218+
private func visitImplAvailabilityEntrySyntax(_ data: SyntaxData) -> Syntax {
3219+
let node = AvailabilityEntrySyntax(data)
3220+
// Accessing _syntaxNode directly is faster than calling Syntax(node)
3221+
visitPre(node._syntaxNode)
3222+
defer { visitPost(node._syntaxNode) }
3223+
if let newNode = visitAny(node._syntaxNode) { return newNode }
3224+
return visit(node)
3225+
}
3226+
32103227
/// Implementation detail of visit(_:). Do not call directly.
32113228
private func visitImplLabeledSpecializeEntrySyntax(_ data: SyntaxData) -> Syntax {
32123229
let node = LabeledSpecializeEntrySyntax(data)
@@ -4523,6 +4540,8 @@ open class SyntaxRewriter {
45234540
return visitImplAttributeListSyntax
45244541
case .specializeAttributeSpecList:
45254542
return visitImplSpecializeAttributeSpecListSyntax
4543+
case .availabilityEntry:
4544+
return visitImplAvailabilityEntrySyntax
45264545
case .labeledSpecializeEntry:
45274546
return visitImplLabeledSpecializeEntrySyntax
45284547
case .targetFunctionEntry:
@@ -5026,6 +5045,8 @@ open class SyntaxRewriter {
50265045
return visitImplAttributeListSyntax(data)
50275046
case .specializeAttributeSpecList:
50285047
return visitImplSpecializeAttributeSpecListSyntax(data)
5048+
case .availabilityEntry:
5049+
return visitImplAvailabilityEntrySyntax(data)
50295050
case .labeledSpecializeEntry:
50305051
return visitImplLabeledSpecializeEntrySyntax(data)
50315052
case .targetFunctionEntry:

Sources/SwiftSyntax/gyb_generated/SyntaxVisitor.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1452,6 +1452,16 @@ open class SyntaxVisitor {
14521452
/// The function called after visiting `SpecializeAttributeSpecListSyntax` and its descendents.
14531453
/// - node: the node we just finished visiting.
14541454
open func visitPost(_ node: SpecializeAttributeSpecListSyntax) {}
1455+
/// Visiting `AvailabilityEntrySyntax` specifically.
1456+
/// - Parameter node: the node we are visiting.
1457+
/// - Returns: how should we continue visiting.
1458+
open func visit(_ node: AvailabilityEntrySyntax) -> SyntaxVisitorContinueKind {
1459+
return .visitChildren
1460+
}
1461+
1462+
/// The function called after visiting `AvailabilityEntrySyntax` and its descendents.
1463+
/// - node: the node we just finished visiting.
1464+
open func visitPost(_ node: AvailabilityEntrySyntax) {}
14551465
/// Visiting `LabeledSpecializeEntrySyntax` specifically.
14561466
/// - Parameter node: the node we are visiting.
14571467
/// - Returns: how should we continue visiting.
@@ -4062,6 +4072,17 @@ open class SyntaxVisitor {
40624072
visitPost(node)
40634073
}
40644074

4075+
/// Implementation detail of doVisit(_:_:). Do not call directly.
4076+
private func visitImplAvailabilityEntrySyntax(_ data: SyntaxData) {
4077+
let node = AvailabilityEntrySyntax(data)
4078+
let needsChildren = (visit(node) == .visitChildren)
4079+
// Avoid calling into visitChildren if possible.
4080+
if needsChildren && node.raw.numberOfChildren > 0 {
4081+
visitChildren(node)
4082+
}
4083+
visitPost(node)
4084+
}
4085+
40654086
/// Implementation detail of doVisit(_:_:). Do not call directly.
40664087
private func visitImplLabeledSpecializeEntrySyntax(_ data: SyntaxData) {
40674088
let node = LabeledSpecializeEntrySyntax(data)
@@ -5443,6 +5464,8 @@ open class SyntaxVisitor {
54435464
visitImplAttributeListSyntax(data)
54445465
case .specializeAttributeSpecList:
54455466
visitImplSpecializeAttributeSpecListSyntax(data)
5467+
case .availabilityEntry:
5468+
visitImplAvailabilityEntrySyntax(data)
54465469
case .labeledSpecializeEntry:
54475470
visitImplLabeledSpecializeEntrySyntax(data)
54485471
case .targetFunctionEntry:

0 commit comments

Comments
 (0)