Skip to content

Commit e0c30d7

Browse files
authored
Merge pull request #1166 from gottesmm/borrow-expr-initial
[borrow-expr] Initial commit for borrow expo
2 parents 7541740 + 93c4b3f commit e0c30d7

File tree

22 files changed

+471
-3
lines changed

22 files changed

+471
-3
lines changed

CodeGeneration/Sources/SyntaxSupport/gyb_generated/ExprNodes.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,22 @@ public let EXPR_NODES: [Node] = [
111111
kind: "Expr")
112112
]),
113113

114+
Node(name: "BorrowExpr",
115+
nameForDiagnostics: "'_borrow' expression",
116+
kind: "Expr",
117+
children: [
118+
Child(name: "BorrowKeyword",
119+
kind: "ContextualKeywordToken",
120+
tokenChoices: [
121+
"ContextualKeyword"
122+
],
123+
textChoices: [
124+
"_borrow"
125+
]),
126+
Child(name: "Expression",
127+
kind: "Expr")
128+
]),
129+
114130
Node(name: "DeclNameArgument",
115131
nameForDiagnostics: nil,
116132
kind: "Syntax",

Sources/SwiftParser/Expressions.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,20 @@ extension Parser {
465465
arena: self.arena
466466
)
467467
)
468+
case (._borrowContextualKeyword, let handle)?:
469+
let borrowTok = self.eat(handle)
470+
let sub = self.parseSequenceExpressionElement(
471+
flavor,
472+
forDirective: forDirective,
473+
pattern: pattern
474+
)
475+
return RawExprSyntax(
476+
RawBorrowExprSyntax(
477+
borrowKeyword: borrowTok,
478+
expression: sub,
479+
arena: self.arena
480+
)
481+
)
468482
case nil:
469483
return self.parseUnaryExpression(flavor, forDirective: forDirective, pattern: pattern)
470484
}

Sources/SwiftParser/RawTokenKindSubset.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -583,13 +583,15 @@ public enum TypeSpecifier: RawTokenKindSubset {
583583
enum AwaitTryMove: RawTokenKindSubset {
584584
case awaitContextualKeyword
585585
case _moveContextualKeyword
586+
case _borrowContextualKeyword
586587
case tryKeyword
587588

588589
init?(lexeme: Lexer.Lexeme) {
589590
switch (lexeme.tokenKind, lexeme.tokenText) {
590591
case (.tryKeyword, _): self = .tryKeyword
591592
case (.identifier, "await"): self = .awaitContextualKeyword
592593
case (.identifier, "_move"): self = ._moveContextualKeyword
594+
case (.identifier, "_borrow"): self = ._borrowContextualKeyword
593595
default: return nil
594596
}
595597
}
@@ -598,6 +600,7 @@ enum AwaitTryMove: RawTokenKindSubset {
598600
switch self {
599601
case .awaitContextualKeyword: return .identifier
600602
case ._moveContextualKeyword: return .identifier
603+
case ._borrowContextualKeyword: return .identifier
601604
case .tryKeyword: return .tryKeyword
602605
}
603606
}
@@ -606,6 +609,7 @@ enum AwaitTryMove: RawTokenKindSubset {
606609
switch self {
607610
case .awaitContextualKeyword: return "await"
608611
case ._moveContextualKeyword: return "_move"
612+
case ._borrowContextualKeyword: return "_borrow"
609613
default: return nil
610614
}
611615
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
107107
- <doc:SwiftSyntax/TryExprSyntax>
108108
- <doc:SwiftSyntax/AwaitExprSyntax>
109109
- <doc:SwiftSyntax/MoveExprSyntax>
110+
- <doc:SwiftSyntax/BorrowExprSyntax>
110111
- <doc:SwiftSyntax/IdentifierExprSyntax>
111112
- <doc:SwiftSyntax/SuperRefExprSyntax>
112113
- <doc:SwiftSyntax/NilLiteralExprSyntax>

Sources/SwiftSyntax/Raw/gyb_generated/RawSyntaxNodes.swift

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public struct RawExprSyntax: RawExprSyntaxNodeProtocol {
6565

6666
public static func isKindOf(_ raw: RawSyntax) -> Bool {
6767
switch raw.kind {
68-
case .missingExpr, .inOutExpr, .poundColumnExpr, .tryExpr, .awaitExpr, .moveExpr, .identifierExpr, .superRefExpr, .nilLiteralExpr, .discardAssignmentExpr, .assignmentExpr, .packElementExpr, .sequenceExpr, .symbolicReferenceExpr, .prefixOperatorExpr, .binaryOperatorExpr, .arrowExpr, .infixOperatorExpr, .floatLiteralExpr, .tupleExpr, .arrayExpr, .dictionaryExpr, .integerLiteralExpr, .booleanLiteralExpr, .unresolvedTernaryExpr, .ternaryExpr, .memberAccessExpr, .unresolvedIsExpr, .isExpr, .unresolvedAsExpr, .asExpr, .typeExpr, .closureExpr, .unresolvedPatternExpr, .functionCallExpr, .subscriptExpr, .optionalChainingExpr, .forcedValueExpr, .postfixUnaryExpr, .specializeExpr, .stringLiteralExpr, .regexLiteralExpr, .keyPathExpr, .macroExpansionExpr, .postfixIfConfigExpr, .editorPlaceholderExpr: return true
68+
case .missingExpr, .inOutExpr, .poundColumnExpr, .tryExpr, .awaitExpr, .moveExpr, .borrowExpr, .identifierExpr, .superRefExpr, .nilLiteralExpr, .discardAssignmentExpr, .assignmentExpr, .packElementExpr, .sequenceExpr, .symbolicReferenceExpr, .prefixOperatorExpr, .binaryOperatorExpr, .arrowExpr, .infixOperatorExpr, .floatLiteralExpr, .tupleExpr, .arrayExpr, .dictionaryExpr, .integerLiteralExpr, .booleanLiteralExpr, .unresolvedTernaryExpr, .ternaryExpr, .memberAccessExpr, .unresolvedIsExpr, .isExpr, .unresolvedAsExpr, .asExpr, .typeExpr, .closureExpr, .unresolvedPatternExpr, .functionCallExpr, .subscriptExpr, .optionalChainingExpr, .forcedValueExpr, .postfixUnaryExpr, .specializeExpr, .stringLiteralExpr, .regexLiteralExpr, .keyPathExpr, .macroExpansionExpr, .postfixIfConfigExpr, .editorPlaceholderExpr: return true
6969
default: return false
7070
}
7171
}
@@ -1155,6 +1155,66 @@ public struct RawMoveExprSyntax: RawExprSyntaxNodeProtocol {
11551155
}
11561156
}
11571157

1158+
@_spi(RawSyntax)
1159+
public struct RawBorrowExprSyntax: RawExprSyntaxNodeProtocol {
1160+
1161+
@_spi(RawSyntax)
1162+
public var layoutView: RawSyntaxLayoutView {
1163+
return raw.layoutView!
1164+
}
1165+
1166+
public static func isKindOf(_ raw: RawSyntax) -> Bool {
1167+
return raw.kind == .borrowExpr
1168+
}
1169+
1170+
public var raw: RawSyntax
1171+
init(raw: RawSyntax) {
1172+
assert(Self.isKindOf(raw))
1173+
self.raw = raw
1174+
}
1175+
1176+
public init?<Node: RawSyntaxNodeProtocol>(_ other: Node) {
1177+
guard Self.isKindOf(other.raw) else { return nil }
1178+
self.init(raw: other.raw)
1179+
}
1180+
1181+
public init(
1182+
_ unexpectedBeforeBorrowKeyword: RawUnexpectedNodesSyntax? = nil,
1183+
borrowKeyword: RawTokenSyntax,
1184+
_ unexpectedBetweenBorrowKeywordAndExpression: RawUnexpectedNodesSyntax? = nil,
1185+
expression: RawExprSyntax,
1186+
_ unexpectedAfterExpression: RawUnexpectedNodesSyntax? = nil,
1187+
arena: __shared SyntaxArena
1188+
) {
1189+
let raw = RawSyntax.makeLayout(
1190+
kind: .borrowExpr, uninitializedCount: 5, arena: arena) { layout in
1191+
layout.initialize(repeating: nil)
1192+
layout[0] = unexpectedBeforeBorrowKeyword?.raw
1193+
layout[1] = borrowKeyword.raw
1194+
layout[2] = unexpectedBetweenBorrowKeywordAndExpression?.raw
1195+
layout[3] = expression.raw
1196+
layout[4] = unexpectedAfterExpression?.raw
1197+
}
1198+
self.init(raw: raw)
1199+
}
1200+
1201+
public var unexpectedBeforeBorrowKeyword: RawUnexpectedNodesSyntax? {
1202+
layoutView.children[0].map(RawUnexpectedNodesSyntax.init(raw:))
1203+
}
1204+
public var borrowKeyword: RawTokenSyntax {
1205+
layoutView.children[1].map(RawTokenSyntax.init(raw:))!
1206+
}
1207+
public var unexpectedBetweenBorrowKeywordAndExpression: RawUnexpectedNodesSyntax? {
1208+
layoutView.children[2].map(RawUnexpectedNodesSyntax.init(raw:))
1209+
}
1210+
public var expression: RawExprSyntax {
1211+
layoutView.children[3].map(RawExprSyntax.init(raw:))!
1212+
}
1213+
public var unexpectedAfterExpression: RawUnexpectedNodesSyntax? {
1214+
layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:))
1215+
}
1216+
}
1217+
11581218
@_spi(RawSyntax)
11591219
public struct RawDeclNameArgumentSyntax: RawSyntaxNodeProtocol {
11601220

Sources/SwiftSyntax/Raw/gyb_generated/RawSyntaxValidation.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,14 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
209209
assertNoError(kind, 3, verify(layout[3], as: RawExprSyntax.self))
210210
assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self))
211211
break
212+
case .borrowExpr:
213+
assert(layout.count == 5)
214+
assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self))
215+
assertNoError(kind, 1, verify(layout[1], as: RawTokenSyntax.self))
216+
assertNoError(kind, 2, verify(layout[2], as: RawUnexpectedNodesSyntax?.self))
217+
assertNoError(kind, 3, verify(layout[3], as: RawExprSyntax.self))
218+
assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self))
219+
break
212220
case .declNameArgument:
213221
assert(layout.count == 5)
214222
assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self))

Sources/SwiftSyntax/generated/Misc.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ extension Syntax {
5151
.node(BackDeployVersionListSyntax.self),
5252
.node(BinaryOperatorExprSyntax.self),
5353
.node(BooleanLiteralExprSyntax.self),
54+
.node(BorrowExprSyntax.self),
5455
.node(BreakStmtSyntax.self),
5556
.node(CaseItemListSyntax.self),
5657
.node(CaseItemSyntax.self),
@@ -354,6 +355,8 @@ extension SyntaxKind {
354355
return BinaryOperatorExprSyntax.self
355356
case .booleanLiteralExpr:
356357
return BooleanLiteralExprSyntax.self
358+
case .borrowExpr:
359+
return BorrowExprSyntax.self
357360
case .breakStmt:
358361
return BreakStmtSyntax.self
359362
case .caseItemList:
@@ -887,6 +890,8 @@ extension SyntaxKind {
887890
return nil
888891
case .booleanLiteralExpr:
889892
return "bool literal"
893+
case .borrowExpr:
894+
return "'_borrow' expression"
890895
case .breakStmt:
891896
return "'break' statement"
892897
case .caseItemList:

Sources/SwiftSyntax/generated/SyntaxAnyVisitor.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,14 @@ open class SyntaxAnyVisitor: SyntaxVisitor {
313313
visitAnyPost(node._syntaxNode)
314314
}
315315

316+
override open func visit(_ node: BorrowExprSyntax) -> SyntaxVisitorContinueKind {
317+
return visitAny(node._syntaxNode)
318+
}
319+
320+
override open func visitPost(_ node: BorrowExprSyntax) {
321+
visitAnyPost(node._syntaxNode)
322+
}
323+
316324
override open func visit(_ node: BreakStmtSyntax) -> SyntaxVisitorContinueKind {
317325
return visitAny(node._syntaxNode)
318326
}

Sources/SwiftSyntax/generated/SyntaxBaseNodes.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ public struct ExprSyntax: ExprSyntaxProtocol, SyntaxHashable {
218218

219219
public init? < S: SyntaxProtocol > (_ node: S) {
220220
switch node.raw.kind {
221-
case .arrayExpr, .arrowExpr, .asExpr, .assignmentExpr, .awaitExpr, .binaryOperatorExpr, .booleanLiteralExpr, .closureExpr, .dictionaryExpr, .discardAssignmentExpr, .editorPlaceholderExpr, .floatLiteralExpr, .forcedValueExpr, .functionCallExpr, .identifierExpr, .inOutExpr, .infixOperatorExpr, .integerLiteralExpr, .isExpr, .keyPathExpr, .macroExpansionExpr, .memberAccessExpr, .missingExpr, .moveExpr, .nilLiteralExpr, .optionalChainingExpr, .packElementExpr, .postfixIfConfigExpr, .postfixUnaryExpr, .poundColumnExpr, .prefixOperatorExpr, .regexLiteralExpr, .sequenceExpr, .specializeExpr, .stringLiteralExpr, .subscriptExpr, .superRefExpr, .symbolicReferenceExpr, .ternaryExpr, .tryExpr, .tupleExpr, .typeExpr, .unresolvedAsExpr, .unresolvedIsExpr, .unresolvedPatternExpr, .unresolvedTernaryExpr:
221+
case .arrayExpr, .arrowExpr, .asExpr, .assignmentExpr, .awaitExpr, .binaryOperatorExpr, .booleanLiteralExpr, .borrowExpr, .closureExpr, .dictionaryExpr, .discardAssignmentExpr, .editorPlaceholderExpr, .floatLiteralExpr, .forcedValueExpr, .functionCallExpr, .identifierExpr, .inOutExpr, .infixOperatorExpr, .integerLiteralExpr, .isExpr, .keyPathExpr, .macroExpansionExpr, .memberAccessExpr, .missingExpr, .moveExpr, .nilLiteralExpr, .optionalChainingExpr, .packElementExpr, .postfixIfConfigExpr, .postfixUnaryExpr, .poundColumnExpr, .prefixOperatorExpr, .regexLiteralExpr, .sequenceExpr, .specializeExpr, .stringLiteralExpr, .subscriptExpr, .superRefExpr, .symbolicReferenceExpr, .ternaryExpr, .tryExpr, .tupleExpr, .typeExpr, .unresolvedAsExpr, .unresolvedIsExpr, .unresolvedPatternExpr, .unresolvedTernaryExpr:
222222
self._syntaxNode = node._syntaxNode
223223
default:
224224
return nil
@@ -231,7 +231,7 @@ public struct ExprSyntax: ExprSyntaxProtocol, SyntaxHashable {
231231
internal init(_ data: SyntaxData) {
232232
#if DEBUG
233233
switch data.raw.kind {
234-
case .arrayExpr, .arrowExpr, .asExpr, .assignmentExpr, .awaitExpr, .binaryOperatorExpr, .booleanLiteralExpr, .closureExpr, .dictionaryExpr, .discardAssignmentExpr, .editorPlaceholderExpr, .floatLiteralExpr, .forcedValueExpr, .functionCallExpr, .identifierExpr, .inOutExpr, .infixOperatorExpr, .integerLiteralExpr, .isExpr, .keyPathExpr, .macroExpansionExpr, .memberAccessExpr, .missingExpr, .moveExpr, .nilLiteralExpr, .optionalChainingExpr, .packElementExpr, .postfixIfConfigExpr, .postfixUnaryExpr, .poundColumnExpr, .prefixOperatorExpr, .regexLiteralExpr, .sequenceExpr, .specializeExpr, .stringLiteralExpr, .subscriptExpr, .superRefExpr, .symbolicReferenceExpr, .ternaryExpr, .tryExpr, .tupleExpr, .typeExpr, .unresolvedAsExpr, .unresolvedIsExpr, .unresolvedPatternExpr, .unresolvedTernaryExpr:
234+
case .arrayExpr, .arrowExpr, .asExpr, .assignmentExpr, .awaitExpr, .binaryOperatorExpr, .booleanLiteralExpr, .borrowExpr, .closureExpr, .dictionaryExpr, .discardAssignmentExpr, .editorPlaceholderExpr, .floatLiteralExpr, .forcedValueExpr, .functionCallExpr, .identifierExpr, .inOutExpr, .infixOperatorExpr, .integerLiteralExpr, .isExpr, .keyPathExpr, .macroExpansionExpr, .memberAccessExpr, .missingExpr, .moveExpr, .nilLiteralExpr, .optionalChainingExpr, .packElementExpr, .postfixIfConfigExpr, .postfixUnaryExpr, .poundColumnExpr, .prefixOperatorExpr, .regexLiteralExpr, .sequenceExpr, .specializeExpr, .stringLiteralExpr, .subscriptExpr, .superRefExpr, .symbolicReferenceExpr, .ternaryExpr, .tryExpr, .tupleExpr, .typeExpr, .unresolvedAsExpr, .unresolvedIsExpr, .unresolvedPatternExpr, .unresolvedTernaryExpr:
235235
break
236236
default:
237237
fatalError("Unable to create ExprSyntax from \(data.raw.kind)")
@@ -274,6 +274,7 @@ public struct ExprSyntax: ExprSyntaxProtocol, SyntaxHashable {
274274
.node(AwaitExprSyntax.self),
275275
.node(BinaryOperatorExprSyntax.self),
276276
.node(BooleanLiteralExprSyntax.self),
277+
.node(BorrowExprSyntax.self),
277278
.node(ClosureExprSyntax.self),
278279
.node(DictionaryExprSyntax.self),
279280
.node(DiscardAssignmentExprSyntax.self),

Sources/SwiftSyntax/generated/SyntaxEnum.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ public enum SyntaxEnum {
8282

8383
case booleanLiteralExpr(BooleanLiteralExprSyntax)
8484

85+
case borrowExpr(BorrowExprSyntax)
86+
8587
case breakStmt(BreakStmtSyntax)
8688

8789
case caseItemList(CaseItemListSyntax)
@@ -615,6 +617,8 @@ public extension Syntax {
615617
return .binaryOperatorExpr(BinaryOperatorExprSyntax(self)!)
616618
case .booleanLiteralExpr:
617619
return .booleanLiteralExpr(BooleanLiteralExprSyntax(self)!)
620+
case .borrowExpr:
621+
return .borrowExpr(BorrowExprSyntax(self)!)
618622
case .breakStmt:
619623
return .breakStmt(BreakStmtSyntax(self)!)
620624
case .caseItemList:

Sources/SwiftSyntax/generated/SyntaxKind.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ public enum SyntaxKind {
8282

8383
case booleanLiteralExpr
8484

85+
case borrowExpr
86+
8587
case breakStmt
8688

8789
case caseItemList

Sources/SwiftSyntax/gyb_generated/SyntaxFactory.swift

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,37 @@ public enum SyntaxFactory {
467467
return MoveExprSyntax(data)
468468
}
469469
}
470+
@available(*, deprecated, message: "Use initializer on BorrowExprSyntax")
471+
public static func makeBorrowExpr(_ unexpectedBeforeBorrowKeyword: UnexpectedNodesSyntax? = nil, borrowKeyword: TokenSyntax, _ unexpectedBetweenBorrowKeywordAndExpression: UnexpectedNodesSyntax? = nil, expression: ExprSyntax, _ unexpectedAfterExpression: UnexpectedNodesSyntax? = nil) -> BorrowExprSyntax {
472+
let layout: [RawSyntax?] = [
473+
unexpectedBeforeBorrowKeyword?.raw,
474+
borrowKeyword.raw,
475+
unexpectedBetweenBorrowKeywordAndExpression?.raw,
476+
expression.raw,
477+
unexpectedAfterExpression?.raw,
478+
]
479+
return withExtendedLifetime(SyntaxArena()) { arena in
480+
let raw = RawSyntax.makeLayout(kind: SyntaxKind.borrowExpr,
481+
from: layout, arena: arena)
482+
let data = SyntaxData.forRoot(raw)
483+
return BorrowExprSyntax(data)
484+
}
485+
}
486+
487+
@available(*, deprecated, message: "Use initializer on BorrowExprSyntax")
488+
public static func makeBlankBorrowExpr(presence: SourcePresence = .present) -> BorrowExprSyntax {
489+
return withExtendedLifetime(SyntaxArena()) { arena in
490+
let data = SyntaxData.forRoot(RawSyntax.makeLayout(kind: .borrowExpr,
491+
from: [
492+
nil,
493+
RawSyntax.makeMissingToken(kind: TokenKind.contextualKeyword(""), arena: arena),
494+
nil,
495+
RawSyntax.makeEmptyLayout(kind: SyntaxKind.missingExpr, arena: arena),
496+
nil,
497+
], arena: arena))
498+
return BorrowExprSyntax(data)
499+
}
500+
}
470501
@available(*, deprecated, message: "Use initializer on DeclNameArgumentSyntax")
471502
public static func makeDeclNameArgument(_ unexpectedBeforeName: UnexpectedNodesSyntax? = nil, name: TokenSyntax, _ unexpectedBetweenNameAndColon: UnexpectedNodesSyntax? = nil, colon: TokenSyntax, _ unexpectedAfterColon: UnexpectedNodesSyntax? = nil) -> DeclNameArgumentSyntax {
472503
let layout: [RawSyntax?] = [

Sources/SwiftSyntax/gyb_generated/SyntaxRewriter.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,13 @@ open class SyntaxRewriter {
156156
return ExprSyntax(visitChildren(node))
157157
}
158158

159+
/// Visit a `BorrowExprSyntax`.
160+
/// - Parameter node: the node that is being visited
161+
/// - Returns: the rewritten node
162+
open func visit(_ node: BorrowExprSyntax) -> ExprSyntax {
163+
return ExprSyntax(visitChildren(node))
164+
}
165+
159166
/// Visit a `DeclNameArgumentSyntax`.
160167
/// - Parameter node: the node that is being visited
161168
/// - Returns: the rewritten node
@@ -2128,6 +2135,16 @@ open class SyntaxRewriter {
21282135
return Syntax(visit(node))
21292136
}
21302137

2138+
/// Implementation detail of visit(_:). Do not call directly.
2139+
private func visitImplBorrowExprSyntax(_ data: SyntaxData) -> Syntax {
2140+
let node = BorrowExprSyntax(data)
2141+
// Accessing _syntaxNode directly is faster than calling Syntax(node)
2142+
visitPre(node._syntaxNode)
2143+
defer { visitPost(node._syntaxNode) }
2144+
if let newNode = visitAny(node._syntaxNode) { return newNode }
2145+
return Syntax(visit(node))
2146+
}
2147+
21312148
/// Implementation detail of visit(_:). Do not call directly.
21322149
private func visitImplDeclNameArgumentSyntax(_ data: SyntaxData) -> Syntax {
21332150
let node = DeclNameArgumentSyntax(data)
@@ -4646,6 +4663,8 @@ open class SyntaxRewriter {
46464663
return visitImplAwaitExprSyntax
46474664
case .moveExpr:
46484665
return visitImplMoveExprSyntax
4666+
case .borrowExpr:
4667+
return visitImplBorrowExprSyntax
46494668
case .declNameArgument:
46504669
return visitImplDeclNameArgumentSyntax
46514670
case .declNameArgumentList:
@@ -5185,6 +5204,8 @@ open class SyntaxRewriter {
51855204
return visitImplAwaitExprSyntax(data)
51865205
case .moveExpr:
51875206
return visitImplMoveExprSyntax(data)
5207+
case .borrowExpr:
5208+
return visitImplBorrowExprSyntax(data)
51885209
case .declNameArgument:
51895210
return visitImplDeclNameArgumentSyntax(data)
51905211
case .declNameArgumentList:

Sources/SwiftSyntax/gyb_generated/SyntaxTransform.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,10 @@ public protocol SyntaxTransformVisitor {
9595
/// - Parameter node: the node we are visiting.
9696
/// - Returns: the sum of whatever the child visitors return.
9797
func visit(_ node: MoveExprSyntax) -> ResultType
98+
/// Visiting `BorrowExprSyntax` specifically.
99+
/// - Parameter node: the node we are visiting.
100+
/// - Returns: the sum of whatever the child visitors return.
101+
func visit(_ node: BorrowExprSyntax) -> ResultType
98102
/// Visiting `DeclNameArgumentSyntax` specifically.
99103
/// - Parameter node: the node we are visiting.
100104
/// - Returns: the sum of whatever the child visitors return.
@@ -1192,6 +1196,12 @@ extension SyntaxTransformVisitor {
11921196
public func visit(_ node: MoveExprSyntax) -> ResultType {
11931197
visitAny(Syntax(node))
11941198
}
1199+
/// Visiting `BorrowExprSyntax` specifically.
1200+
/// - Parameter node: the node we are visiting.
1201+
/// - Returns: nil by default.
1202+
public func visit(_ node: BorrowExprSyntax) -> ResultType {
1203+
visitAny(Syntax(node))
1204+
}
11951205
/// Visiting `DeclNameArgumentSyntax` specifically.
11961206
/// - Parameter node: the node we are visiting.
11971207
/// - Returns: nil by default.
@@ -2699,6 +2709,8 @@ extension SyntaxTransformVisitor {
26992709
return visit(derived)
27002710
case .moveExpr(let derived):
27012711
return visit(derived)
2712+
case .borrowExpr(let derived):
2713+
return visit(derived)
27022714
case .declNameArgument(let derived):
27032715
return visit(derived)
27042716
case .declNameArgumentList(let derived):

0 commit comments

Comments
 (0)