Skip to content

Commit bc256a7

Browse files
committed
Model the Argument List of @_opaqueReturnTypeOf
1 parent 7eb77de commit bc256a7

File tree

21 files changed

+494
-2
lines changed

21 files changed

+494
-2
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,7 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
361361
- <doc:SwiftSyntax/BackDeployAttributeSpecListSyntax>
362362
- <doc:SwiftSyntax/BackDeployVersionListSyntax>
363363
- <doc:SwiftSyntax/BackDeployVersionArgumentSyntax>
364+
- <doc:SwiftSyntax/OpaqueReturnTypeOfAttributeArgumentsSyntax>
364365
- <doc:SwiftSyntax/SwitchCaseListSyntax>
365366
- <doc:SwiftSyntax/WhereClauseSyntax>
366367
- <doc:SwiftSyntax/CatchClauseListSyntax>

Sources/SwiftSyntax/Raw/gyb_generated/RawSyntaxNodes.swift

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10577,6 +10577,69 @@ public struct RawBackDeployVersionArgumentSyntax: RawSyntaxNodeProtocol {
1057710577
}
1057810578
}
1057910579

10580+
@_spi(RawSyntax)
10581+
public struct RawOpaqueReturnTypeOfAttributeArgumentsSyntax: RawSyntaxNodeProtocol {
10582+
var layoutView: RawSyntaxLayoutView {
10583+
return raw.layoutView!
10584+
}
10585+
10586+
public static func isKindOf(_ raw: RawSyntax) -> Bool {
10587+
return raw.kind == .opaqueReturnTypeOfAttributeArguments
10588+
}
10589+
10590+
public var raw: RawSyntax
10591+
init(raw: RawSyntax) {
10592+
assert(Self.isKindOf(raw))
10593+
self.raw = raw
10594+
}
10595+
10596+
public init?<Node: RawSyntaxNodeProtocol>(_ other: Node) {
10597+
guard Self.isKindOf(other.raw) else { return nil }
10598+
self.init(raw: other.raw)
10599+
}
10600+
10601+
public init(
10602+
_ unexpectedBeforeMangledName: RawUnexpectedNodesSyntax? = nil,
10603+
mangledName: RawTokenSyntax,
10604+
_ unexpectedBetweenMangledNameAndComma: RawUnexpectedNodesSyntax? = nil,
10605+
comma: RawTokenSyntax,
10606+
_ unexpectedBetweenCommaAndOrdinal: RawUnexpectedNodesSyntax? = nil,
10607+
ordinal: RawTokenSyntax,
10608+
arena: __shared SyntaxArena
10609+
) {
10610+
let raw = RawSyntax.makeLayout(
10611+
kind: .opaqueReturnTypeOfAttributeArguments, uninitializedCount: 6, arena: arena) { layout in
10612+
layout.initialize(repeating: nil)
10613+
layout[0] = unexpectedBeforeMangledName?.raw
10614+
layout[1] = mangledName.raw
10615+
layout[2] = unexpectedBetweenMangledNameAndComma?.raw
10616+
layout[3] = comma.raw
10617+
layout[4] = unexpectedBetweenCommaAndOrdinal?.raw
10618+
layout[5] = ordinal.raw
10619+
}
10620+
self.init(raw: raw)
10621+
}
10622+
10623+
public var unexpectedBeforeMangledName: RawUnexpectedNodesSyntax? {
10624+
layoutView.children[0].map(RawUnexpectedNodesSyntax.init(raw:))
10625+
}
10626+
public var mangledName: RawTokenSyntax {
10627+
layoutView.children[1].map(RawTokenSyntax.init(raw:))!
10628+
}
10629+
public var unexpectedBetweenMangledNameAndComma: RawUnexpectedNodesSyntax? {
10630+
layoutView.children[2].map(RawUnexpectedNodesSyntax.init(raw:))
10631+
}
10632+
public var comma: RawTokenSyntax {
10633+
layoutView.children[3].map(RawTokenSyntax.init(raw:))!
10634+
}
10635+
public var unexpectedBetweenCommaAndOrdinal: RawUnexpectedNodesSyntax? {
10636+
layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:))
10637+
}
10638+
public var ordinal: RawTokenSyntax {
10639+
layoutView.children[5].map(RawTokenSyntax.init(raw:))!
10640+
}
10641+
}
10642+
1058010643
@_spi(RawSyntax)
1058110644
public struct RawLabeledStmtSyntax: RawStmtSyntaxNodeProtocol {
1058210645
var layoutView: RawSyntaxLayoutView {

Sources/SwiftSyntax/Raw/gyb_generated/RawSyntaxValidation.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,6 +1518,15 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
15181518
_verify(layout[2], as: RawUnexpectedNodesSyntax?.self)
15191519
_verify(layout[3], as: RawTokenSyntax?.self)
15201520
break
1521+
case .opaqueReturnTypeOfAttributeArguments:
1522+
assert(layout.count == 6)
1523+
_verify(layout[0], as: RawUnexpectedNodesSyntax?.self)
1524+
_verify(layout[1], as: RawTokenSyntax.self)
1525+
_verify(layout[2], as: RawUnexpectedNodesSyntax?.self)
1526+
_verify(layout[3], as: RawTokenSyntax.self)
1527+
_verify(layout[4], as: RawUnexpectedNodesSyntax?.self)
1528+
_verify(layout[5], as: RawTokenSyntax.self)
1529+
break
15211530
case .labeledStmt:
15221531
assert(layout.count == 6)
15231532
_verify(layout[0], as: RawUnexpectedNodesSyntax?.self)

Sources/SwiftSyntax/gyb_generated/Misc.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,8 @@ extension Syntax {
381381
return node
382382
case .backDeployVersionArgument(let node):
383383
return node
384+
case .opaqueReturnTypeOfAttributeArguments(let node):
385+
return node
384386
case .labeledStmt(let node):
385387
return node
386388
case .continueStmt(let node):
@@ -742,6 +744,7 @@ extension SyntaxKind {
742744
case .backDeployAttributeSpecList: return BackDeployAttributeSpecListSyntax.self
743745
case .backDeployVersionList: return BackDeployVersionListSyntax.self
744746
case .backDeployVersionArgument: return BackDeployVersionArgumentSyntax.self
747+
case .opaqueReturnTypeOfAttributeArguments: return OpaqueReturnTypeOfAttributeArgumentsSyntax.self
745748
case .labeledStmt: return LabeledStmtSyntax.self
746749
case .continueStmt: return ContinueStmtSyntax.self
747750
case .whileStmt: return WhileStmtSyntax.self

Sources/SwiftSyntax/gyb_generated/SyntaxAnyVisitor.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1293,6 +1293,13 @@ open class SyntaxAnyVisitor: SyntaxVisitor {
12931293
override open func visitPost(_ node: BackDeployVersionArgumentSyntax) {
12941294
visitAnyPost(node._syntaxNode)
12951295
}
1296+
override open func visit(_ node: OpaqueReturnTypeOfAttributeArgumentsSyntax) -> SyntaxVisitorContinueKind {
1297+
return visitAny(node._syntaxNode)
1298+
}
1299+
1300+
override open func visitPost(_ node: OpaqueReturnTypeOfAttributeArgumentsSyntax) {
1301+
visitAnyPost(node._syntaxNode)
1302+
}
12961303
override open func visit(_ node: LabeledStmtSyntax) -> SyntaxVisitorContinueKind {
12971304
return visitAny(node._syntaxNode)
12981305
}

Sources/SwiftSyntax/gyb_generated/SyntaxEnum.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ public enum SyntaxEnum {
192192
case backDeployAttributeSpecList(BackDeployAttributeSpecListSyntax)
193193
case backDeployVersionList(BackDeployVersionListSyntax)
194194
case backDeployVersionArgument(BackDeployVersionArgumentSyntax)
195+
case opaqueReturnTypeOfAttributeArguments(OpaqueReturnTypeOfAttributeArgumentsSyntax)
195196
case labeledStmt(LabeledStmtSyntax)
196197
case continueStmt(ContinueStmtSyntax)
197198
case whileStmt(WhileStmtSyntax)
@@ -639,6 +640,8 @@ public enum SyntaxEnum {
639640
return "version list"
640641
case .backDeployVersionArgument:
641642
return "version"
643+
case .opaqueReturnTypeOfAttributeArguments:
644+
return "opaque return type arguments"
642645
case .labeledStmt:
643646
return "labeled statement"
644647
case .continueStmt:
@@ -1179,6 +1182,8 @@ public extension Syntax {
11791182
return .backDeployVersionList(BackDeployVersionListSyntax(self)!)
11801183
case .backDeployVersionArgument:
11811184
return .backDeployVersionArgument(BackDeployVersionArgumentSyntax(self)!)
1185+
case .opaqueReturnTypeOfAttributeArguments:
1186+
return .opaqueReturnTypeOfAttributeArguments(OpaqueReturnTypeOfAttributeArgumentsSyntax(self)!)
11821187
case .labeledStmt:
11831188
return .labeledStmt(LabeledStmtSyntax(self)!)
11841189
case .continueStmt:

Sources/SwiftSyntax/gyb_generated/SyntaxFactory.swift

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4723,6 +4723,35 @@ public enum SyntaxFactory {
47234723
], arena: .default))
47244724
return BackDeployVersionArgumentSyntax(data)
47254725
}
4726+
@available(*, deprecated, message: "Use initializer on OpaqueReturnTypeOfAttributeArgumentsSyntax")
4727+
public static func makeOpaqueReturnTypeOfAttributeArguments(_ unexpectedBeforeMangledName: UnexpectedNodesSyntax? = nil, mangledName: TokenSyntax, _ unexpectedBetweenMangledNameAndComma: UnexpectedNodesSyntax? = nil, comma: TokenSyntax, _ unexpectedBetweenCommaAndOrdinal: UnexpectedNodesSyntax? = nil, ordinal: TokenSyntax) -> OpaqueReturnTypeOfAttributeArgumentsSyntax {
4728+
let layout: [RawSyntax?] = [
4729+
unexpectedBeforeMangledName?.raw,
4730+
mangledName.raw,
4731+
unexpectedBetweenMangledNameAndComma?.raw,
4732+
comma.raw,
4733+
unexpectedBetweenCommaAndOrdinal?.raw,
4734+
ordinal.raw,
4735+
]
4736+
let raw = RawSyntax.makeLayout(kind: SyntaxKind.opaqueReturnTypeOfAttributeArguments,
4737+
from: layout, arena: .default)
4738+
let data = SyntaxData.forRoot(raw)
4739+
return OpaqueReturnTypeOfAttributeArgumentsSyntax(data)
4740+
}
4741+
4742+
@available(*, deprecated, message: "Use initializer on OpaqueReturnTypeOfAttributeArgumentsSyntax")
4743+
public static func makeBlankOpaqueReturnTypeOfAttributeArguments(presence: SourcePresence = .present) -> OpaqueReturnTypeOfAttributeArgumentsSyntax {
4744+
let data = SyntaxData.forRoot(RawSyntax.makeLayout(kind: .opaqueReturnTypeOfAttributeArguments,
4745+
from: [
4746+
nil,
4747+
RawSyntax.makeMissingToken(kind: TokenKind.stringLiteral(""), arena: .default),
4748+
nil,
4749+
RawSyntax.makeMissingToken(kind: TokenKind.comma, arena: .default),
4750+
nil,
4751+
RawSyntax.makeMissingToken(kind: TokenKind.integerLiteral(""), arena: .default),
4752+
], arena: .default))
4753+
return OpaqueReturnTypeOfAttributeArgumentsSyntax(data)
4754+
}
47264755
@available(*, deprecated, message: "Use initializer on LabeledStmtSyntax")
47274756
public static func makeLabeledStmt(_ unexpectedBeforeLabelName: UnexpectedNodesSyntax? = nil, labelName: TokenSyntax, _ unexpectedBetweenLabelNameAndLabelColon: UnexpectedNodesSyntax? = nil, labelColon: TokenSyntax, _ unexpectedBetweenLabelColonAndStatement: UnexpectedNodesSyntax? = nil, statement: StmtSyntax) -> LabeledStmtSyntax {
47284757
let layout: [RawSyntax?] = [

Sources/SwiftSyntax/gyb_generated/SyntaxKind.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ public enum SyntaxKind {
193193
case backDeployAttributeSpecList
194194
case backDeployVersionList
195195
case backDeployVersionArgument
196+
case opaqueReturnTypeOfAttributeArguments
196197
case labeledStmt
197198
case continueStmt
198199
case whileStmt

Sources/SwiftSyntax/gyb_generated/SyntaxRewriter.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,6 +1255,13 @@ open class SyntaxRewriter {
12551255
return Syntax(visitChildren(node))
12561256
}
12571257

1258+
/// Visit a `OpaqueReturnTypeOfAttributeArgumentsSyntax`.
1259+
/// - Parameter node: the node that is being visited
1260+
/// - Returns: the rewritten node
1261+
open func visit(_ node: OpaqueReturnTypeOfAttributeArgumentsSyntax) -> Syntax {
1262+
return Syntax(visitChildren(node))
1263+
}
1264+
12581265
/// Visit a `LabeledStmtSyntax`.
12591266
/// - Parameter node: the node that is being visited
12601267
/// - Returns: the rewritten node
@@ -3722,6 +3729,16 @@ open class SyntaxRewriter {
37223729
return visit(node)
37233730
}
37243731

3732+
/// Implementation detail of visit(_:). Do not call directly.
3733+
private func visitImplOpaqueReturnTypeOfAttributeArgumentsSyntax(_ data: SyntaxData) -> Syntax {
3734+
let node = OpaqueReturnTypeOfAttributeArgumentsSyntax(data)
3735+
// Accessing _syntaxNode directly is faster than calling Syntax(node)
3736+
visitPre(node._syntaxNode)
3737+
defer { visitPost(node._syntaxNode) }
3738+
if let newNode = visitAny(node._syntaxNode) { return newNode }
3739+
return visit(node)
3740+
}
3741+
37253742
/// Implementation detail of visit(_:). Do not call directly.
37263743
private func visitImplLabeledStmtSyntax(_ data: SyntaxData) -> Syntax {
37273744
let node = LabeledStmtSyntax(data)
@@ -5006,6 +5023,8 @@ open class SyntaxRewriter {
50065023
return visitImplBackDeployVersionListSyntax
50075024
case .backDeployVersionArgument:
50085025
return visitImplBackDeployVersionArgumentSyntax
5026+
case .opaqueReturnTypeOfAttributeArguments:
5027+
return visitImplOpaqueReturnTypeOfAttributeArgumentsSyntax
50095028
case .labeledStmt:
50105029
return visitImplLabeledStmtSyntax
50115030
case .continueStmt:
@@ -5549,6 +5568,8 @@ open class SyntaxRewriter {
55495568
return visitImplBackDeployVersionListSyntax(data)
55505569
case .backDeployVersionArgument:
55515570
return visitImplBackDeployVersionArgumentSyntax(data)
5571+
case .opaqueReturnTypeOfAttributeArguments:
5572+
return visitImplOpaqueReturnTypeOfAttributeArgumentsSyntax(data)
55525573
case .labeledStmt:
55535574
return visitImplLabeledStmtSyntax(data)
55545575
case .continueStmt:

Sources/SwiftSyntax/gyb_generated/SyntaxTransform.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -724,6 +724,10 @@ public protocol SyntaxTransformVisitor {
724724
/// - Parameter node: the node we are visiting.
725725
/// - Returns: the sum of whatever the child visitors return.
726726
func visit(_ node: BackDeployVersionArgumentSyntax) -> ResultType
727+
/// Visiting `OpaqueReturnTypeOfAttributeArgumentsSyntax` specifically.
728+
/// - Parameter node: the node we are visiting.
729+
/// - Returns: the sum of whatever the child visitors return.
730+
func visit(_ node: OpaqueReturnTypeOfAttributeArgumentsSyntax) -> ResultType
727731
/// Visiting `LabeledStmtSyntax` specifically.
728732
/// - Parameter node: the node we are visiting.
729733
/// - Returns: the sum of whatever the child visitors return.
@@ -2143,6 +2147,12 @@ extension SyntaxTransformVisitor {
21432147
public func visit(_ node: BackDeployVersionArgumentSyntax) -> ResultType {
21442148
visitAny(Syntax(node))
21452149
}
2150+
/// Visiting `OpaqueReturnTypeOfAttributeArgumentsSyntax` specifically.
2151+
/// - Parameter node: the node we are visiting.
2152+
/// - Returns: nil by default.
2153+
public func visit(_ node: OpaqueReturnTypeOfAttributeArgumentsSyntax) -> ResultType {
2154+
visitAny(Syntax(node))
2155+
}
21462156
/// Visiting `LabeledStmtSyntax` specifically.
21472157
/// - Parameter node: the node we are visiting.
21482158
/// - Returns: nil by default.
@@ -3030,6 +3040,8 @@ extension SyntaxTransformVisitor {
30303040
return visit(derived)
30313041
case .backDeployVersionArgument(let derived):
30323042
return visit(derived)
3043+
case .opaqueReturnTypeOfAttributeArguments(let derived):
3044+
return visit(derived)
30333045
case .labeledStmt(let derived):
30343046
return visit(derived)
30353047
case .continueStmt(let derived):

Sources/SwiftSyntax/gyb_generated/SyntaxVisitor.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1801,6 +1801,16 @@ open class SyntaxVisitor {
18011801
/// The function called after visiting `BackDeployVersionArgumentSyntax` and its descendents.
18021802
/// - node: the node we just finished visiting.
18031803
open func visitPost(_ node: BackDeployVersionArgumentSyntax) {}
1804+
/// Visiting `OpaqueReturnTypeOfAttributeArgumentsSyntax` specifically.
1805+
/// - Parameter node: the node we are visiting.
1806+
/// - Returns: how should we continue visiting.
1807+
open func visit(_ node: OpaqueReturnTypeOfAttributeArgumentsSyntax) -> SyntaxVisitorContinueKind {
1808+
return .visitChildren
1809+
}
1810+
1811+
/// The function called after visiting `OpaqueReturnTypeOfAttributeArgumentsSyntax` and its descendents.
1812+
/// - node: the node we just finished visiting.
1813+
open func visitPost(_ node: OpaqueReturnTypeOfAttributeArgumentsSyntax) {}
18041814
/// Visiting `LabeledStmtSyntax` specifically.
18051815
/// - Parameter node: the node we are visiting.
18061816
/// - Returns: how should we continue visiting.
@@ -4695,6 +4705,17 @@ open class SyntaxVisitor {
46954705
visitPost(node)
46964706
}
46974707

4708+
/// Implementation detail of doVisit(_:_:). Do not call directly.
4709+
private func visitImplOpaqueReturnTypeOfAttributeArgumentsSyntax(_ data: SyntaxData) {
4710+
let node = OpaqueReturnTypeOfAttributeArgumentsSyntax(data)
4711+
let needsChildren = (visit(node) == .visitChildren)
4712+
// Avoid calling into visitChildren if possible.
4713+
if needsChildren && !node.raw.layoutView!.children.isEmpty {
4714+
visitChildren(node)
4715+
}
4716+
visitPost(node)
4717+
}
4718+
46984719
/// Implementation detail of doVisit(_:_:). Do not call directly.
46994720
private func visitImplLabeledStmtSyntax(_ data: SyntaxData) {
47004721
let node = LabeledStmtSyntax(data)
@@ -6035,6 +6056,8 @@ open class SyntaxVisitor {
60356056
visitImplBackDeployVersionListSyntax(data)
60366057
case .backDeployVersionArgument:
60376058
visitImplBackDeployVersionArgumentSyntax(data)
6059+
case .opaqueReturnTypeOfAttributeArguments:
6060+
visitImplOpaqueReturnTypeOfAttributeArgumentsSyntax(data)
60386061
case .labeledStmt:
60396062
visitImplLabeledStmtSyntax(data)
60406063
case .continueStmt:

0 commit comments

Comments
 (0)