@@ -93,17 +93,22 @@ func syntaxNode(nodesStartingWith: [Character]) -> SourceFileSyntax {
93
93
)
94
94
)
95
95
)
96
- let layoutList = ArrayExprSyntax {
97
- for child in node. children {
98
- ArrayElementSyntax (
99
- expression: MemberAccessExprSyntax (
100
- base: child. buildableType. optionalChained ( expr: ExprSyntax ( " \( child. varOrCaseName. backtickedIfNeeded) " ) ) ,
101
- period: . periodToken( ) ,
102
- name: " raw "
103
- )
104
- )
105
- }
106
- }
96
+ VariableDeclSyntax (
97
+ . let,
98
+ name: " nodes " ,
99
+ type: TypeAnnotationSyntax ( type: TypeSyntax ( " [SyntaxData?] " ) ) ,
100
+ initializer: InitializerClauseSyntax (
101
+ value: ArrayExprSyntax {
102
+ for child in node. children {
103
+ if child. isOptional {
104
+ ArrayElementSyntax ( expression: ExprSyntax ( " \( child. varOrCaseName. backtickedIfNeeded) ?.data " ) )
105
+ } else {
106
+ ArrayElementSyntax ( expression: ExprSyntax ( " \( child. varOrCaseName. backtickedIfNeeded) .data " ) )
107
+ }
108
+ }
109
+ }
110
+ )
111
+ )
107
112
108
113
let initializer = FunctionCallExprSyntax (
109
114
calledExpression: ExprSyntax ( " withExtendedLifetime " ) ,
@@ -116,12 +121,11 @@ func syntaxNode(nodesStartingWith: [Character]) -> SourceFileSyntax {
116
121
if node. children. isEmpty {
117
122
DeclSyntax ( " let raw = RawSyntax.makeEmptyLayout(kind: SyntaxKind. \( node. varOrCaseName) , arena: arena) " )
118
123
} else {
119
- DeclSyntax ( " let layout: [RawSyntax?] = \( layoutList) " )
120
124
DeclSyntax (
121
125
"""
122
126
let raw = RawSyntax.makeLayout(
123
127
kind: SyntaxKind. \( node. varOrCaseName) ,
124
- from: layout ,
128
+ from: nodes ,
125
129
arena: arena,
126
130
leadingTrivia: leadingTrivia,
127
131
trailingTrivia: trailingTrivia
@@ -145,21 +149,6 @@ func syntaxNode(nodesStartingWith: [Character]) -> SourceFileSyntax {
145
149
initializer: InitializerClauseSyntax ( value: initializer)
146
150
)
147
151
148
- VariableDeclSyntax (
149
- . let,
150
- name: " nodes " ,
151
- initializer: InitializerClauseSyntax (
152
- value: ArrayExprSyntax {
153
- for child in node. children {
154
- if child. isOptional {
155
- ArrayElementSyntax ( expression: ExprSyntax ( " \( child. varOrCaseName. backtickedIfNeeded) ?.data " ) )
156
- } else {
157
- ArrayElementSyntax ( expression: ExprSyntax ( " \( child. varOrCaseName. backtickedIfNeeded) .data " ) )
158
- }
159
- }
160
- }
161
- )
162
- )
163
152
ExprSyntax ( " data.setSyntaxTrackingOfTree(SyntaxTracking(tracking: nodes)) " )
164
153
165
154
ExprSyntax ( " self.init(data) " )
@@ -226,7 +215,7 @@ func syntaxNode(nodesStartingWith: [Character]) -> SourceFileSyntax {
226
215
collection = col.layoutView!.appending(element.raw, arena: arena)
227
216
} else {
228
217
collection = RawSyntax.makeLayout(kind: SyntaxKind. \( childNode. varOrCaseName) ,
229
- from: [element.raw ], arena: arena)
218
+ from: [element.data ], arena: arena)
230
219
}
231
220
let newData = data.replacingChild(at: \( raw: index) , with: collection, rawNodeArena: arena, allocationArena: arena)
232
221
return \( node. kind. syntaxType) (newData)
0 commit comments