Skip to content

Commit 4b0c90d

Browse files
committed
Keep SyntaxData instead of Syntax alive in syntax node initializers
1 parent 5877885 commit 4b0c90d

File tree

10 files changed

+1653
-1649
lines changed

10 files changed

+1653
-1649
lines changed

CodeGeneration/Sources/generate-swift-syntax/templates/swiftsyntax/SyntaxNodesFile.swift

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,13 @@ func syntaxNode(nodesStartingWith: [Character]) -> SourceFileSyntax {
8484
\(node.generateInitializerDeclHeader())
8585
"""
8686
) {
87-
let parameters = ClosureParameterListSyntax {
87+
let parameters = TupleExprSyntax {
8888
for child in node.children {
89-
ClosureParameterSyntax(firstName: child.varOrCaseName.backtickedIfNeeded)
89+
if child.isOptional {
90+
LabeledExprSyntax(expression: ExprSyntax("\(child.varOrCaseName.backtickedIfNeeded)?.data"))
91+
} else {
92+
LabeledExprSyntax(expression: ExprSyntax("\(child.varOrCaseName.backtickedIfNeeded).data"))
93+
}
9094
}
9195
}
9296

@@ -116,7 +120,7 @@ func syntaxNode(nodesStartingWith: [Character]) -> SourceFileSyntax {
116120
calledExpression: ExprSyntax("withExtendedLifetime"),
117121
leftParen: .leftParenToken(),
118122
arguments: LabeledExprListSyntax {
119-
LabeledExprSyntax(expression: ExprSyntax("(SyntaxArena(), (\(parameters)))"))
123+
LabeledExprSyntax(expression: ExprSyntax("(SyntaxArena(), \(parameters))"))
120124
},
121125
rightParen: .rightParenToken(),
122126
trailingClosure: ClosureExprSyntax(signature: closureSignature) {

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesAB.swift

Lines changed: 161 additions & 161 deletions
Large diffs are not rendered by default.

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesC.swift

Lines changed: 193 additions & 193 deletions
Large diffs are not rendered by default.

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesD.swift

Lines changed: 152 additions & 152 deletions
Large diffs are not rendered by default.

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesEF.swift

Lines changed: 207 additions & 207 deletions
Large diffs are not rendered by default.

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesGHI.swift

Lines changed: 172 additions & 172 deletions
Large diffs are not rendered by default.

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesJKLMN.swift

Lines changed: 191 additions & 191 deletions
Large diffs are not rendered by default.

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesOP.swift

Lines changed: 209 additions & 209 deletions
Large diffs are not rendered by default.

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesQRS.swift

Lines changed: 177 additions & 177 deletions
Large diffs are not rendered by default.

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesTUVWXYZ.swift

Lines changed: 184 additions & 184 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)