Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: pkg/analyzer/lib/src/dart/ast/utilities.dart

Issue 2542753002: Revert "Transition analyzer and analysis_server to new astFactory; remove old AST factory methods." (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/analyzer/lib/dart/ast/ast.dart ('k') | pkg/analyzer/lib/src/dart/constant/evaluation.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer.src.dart.ast.utilities; 5 library analyzer.src.dart.ast.utilities;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
11 import 'package:analyzer/dart/ast/token.dart'; 10 import 'package:analyzer/dart/ast/token.dart';
12 import 'package:analyzer/dart/ast/visitor.dart'; 11 import 'package:analyzer/dart/ast/visitor.dart';
13 import 'package:analyzer/dart/element/element.dart'; 12 import 'package:analyzer/dart/element/element.dart';
14 import 'package:analyzer/exception/exception.dart'; 13 import 'package:analyzer/exception/exception.dart';
15 import 'package:analyzer/src/dart/ast/ast.dart'; 14 import 'package:analyzer/src/dart/ast/ast.dart';
16 import 'package:analyzer/src/dart/ast/token.dart'; 15 import 'package:analyzer/src/dart/ast/token.dart';
17 import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine; 16 import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine;
18 import 'package:analyzer/src/generated/java_core.dart'; 17 import 'package:analyzer/src/generated/java_core.dart';
19 import 'package:analyzer/src/generated/utilities_collection.dart' show TokenMap; 18 import 'package:analyzer/src/generated/utilities_collection.dart' show TokenMap;
20 import 'package:analyzer/src/generated/utilities_dart.dart'; 19 import 'package:analyzer/src/generated/utilities_dart.dart';
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 */ 113 */
115 List<Token> cloneTokenList(List<Token> tokens) { 114 List<Token> cloneTokenList(List<Token> tokens) {
116 if (cloneTokens) { 115 if (cloneTokens) {
117 return tokens.map(cloneToken).toList(); 116 return tokens.map(cloneToken).toList();
118 } 117 }
119 return tokens; 118 return tokens;
120 } 119 }
121 120
122 @override 121 @override
123 AdjacentStrings visitAdjacentStrings(AdjacentStrings node) => 122 AdjacentStrings visitAdjacentStrings(AdjacentStrings node) =>
124 astFactory.adjacentStrings(cloneNodeList(node.strings)); 123 new AdjacentStrings(cloneNodeList(node.strings));
125 124
126 @override 125 @override
127 Annotation visitAnnotation(Annotation node) => astFactory.annotation( 126 Annotation visitAnnotation(Annotation node) => new Annotation(
128 cloneToken(node.atSign), 127 cloneToken(node.atSign),
129 cloneNode(node.name), 128 cloneNode(node.name),
130 cloneToken(node.period), 129 cloneToken(node.period),
131 cloneNode(node.constructorName), 130 cloneNode(node.constructorName),
132 cloneNode(node.arguments)); 131 cloneNode(node.arguments));
133 132
134 @override 133 @override
135 ArgumentList visitArgumentList(ArgumentList node) => astFactory.argumentList( 134 ArgumentList visitArgumentList(ArgumentList node) => new ArgumentList(
136 cloneToken(node.leftParenthesis), 135 cloneToken(node.leftParenthesis),
137 cloneNodeList(node.arguments), 136 cloneNodeList(node.arguments),
138 cloneToken(node.rightParenthesis)); 137 cloneToken(node.rightParenthesis));
139 138
140 @override 139 @override
141 AsExpression visitAsExpression(AsExpression node) => astFactory.asExpression( 140 AsExpression visitAsExpression(AsExpression node) => new AsExpression(
142 cloneNode(node.expression), 141 cloneNode(node.expression),
143 cloneToken(node.asOperator), 142 cloneToken(node.asOperator),
144 cloneNode(node.type)); 143 cloneNode(node.type));
145 144
146 @override 145 @override
147 AstNode visitAssertInitializer(AssertInitializer node) => 146 AstNode visitAssertInitializer(AssertInitializer node) =>
148 astFactory.assertInitializer( 147 new AssertInitializer(
149 cloneToken(node.assertKeyword), 148 cloneToken(node.assertKeyword),
150 cloneToken(node.leftParenthesis), 149 cloneToken(node.leftParenthesis),
151 cloneNode(node.condition), 150 cloneNode(node.condition),
152 cloneToken(node.comma), 151 cloneToken(node.comma),
153 cloneNode(node.message), 152 cloneNode(node.message),
154 cloneToken(node.rightParenthesis)); 153 cloneToken(node.rightParenthesis));
155 154
156 @override 155 @override
157 AstNode visitAssertStatement(AssertStatement node) => 156 AstNode visitAssertStatement(AssertStatement node) => new AssertStatement(
158 astFactory.assertStatement( 157 cloneToken(node.assertKeyword),
159 cloneToken(node.assertKeyword), 158 cloneToken(node.leftParenthesis),
160 cloneToken(node.leftParenthesis), 159 cloneNode(node.condition),
161 cloneNode(node.condition), 160 cloneToken(node.comma),
162 cloneToken(node.comma), 161 cloneNode(node.message),
163 cloneNode(node.message), 162 cloneToken(node.rightParenthesis),
164 cloneToken(node.rightParenthesis), 163 cloneToken(node.semicolon));
165 cloneToken(node.semicolon));
166 164
167 @override 165 @override
168 AssignmentExpression visitAssignmentExpression(AssignmentExpression node) => 166 AssignmentExpression visitAssignmentExpression(AssignmentExpression node) =>
169 astFactory.assignmentExpression(cloneNode(node.leftHandSide), 167 new AssignmentExpression(cloneNode(node.leftHandSide),
170 cloneToken(node.operator), cloneNode(node.rightHandSide)); 168 cloneToken(node.operator), cloneNode(node.rightHandSide));
171 169
172 @override 170 @override
173 AwaitExpression visitAwaitExpression(AwaitExpression node) => 171 AwaitExpression visitAwaitExpression(AwaitExpression node) =>
174 astFactory.awaitExpression( 172 new AwaitExpression(
175 cloneToken(node.awaitKeyword), cloneNode(node.expression)); 173 cloneToken(node.awaitKeyword), cloneNode(node.expression));
176 174
177 @override 175 @override
178 BinaryExpression visitBinaryExpression(BinaryExpression node) => 176 BinaryExpression visitBinaryExpression(BinaryExpression node) =>
179 astFactory.binaryExpression(cloneNode(node.leftOperand), 177 new BinaryExpression(cloneNode(node.leftOperand),
180 cloneToken(node.operator), cloneNode(node.rightOperand)); 178 cloneToken(node.operator), cloneNode(node.rightOperand));
181 179
182 @override 180 @override
183 Block visitBlock(Block node) => astFactory.block(cloneToken(node.leftBracket), 181 Block visitBlock(Block node) => new Block(cloneToken(node.leftBracket),
184 cloneNodeList(node.statements), cloneToken(node.rightBracket)); 182 cloneNodeList(node.statements), cloneToken(node.rightBracket));
185 183
186 @override 184 @override
187 BlockFunctionBody visitBlockFunctionBody(BlockFunctionBody node) => 185 BlockFunctionBody visitBlockFunctionBody(BlockFunctionBody node) =>
188 astFactory.blockFunctionBody(cloneToken(node.keyword), 186 new BlockFunctionBody(cloneToken(node.keyword), cloneToken(node.star),
189 cloneToken(node.star), cloneNode(node.block)); 187 cloneNode(node.block));
190 188
191 @override 189 @override
192 BooleanLiteral visitBooleanLiteral(BooleanLiteral node) => 190 BooleanLiteral visitBooleanLiteral(BooleanLiteral node) =>
193 astFactory.booleanLiteral(cloneToken(node.literal), node.value); 191 new BooleanLiteral(cloneToken(node.literal), node.value);
194 192
195 @override 193 @override
196 BreakStatement visitBreakStatement(BreakStatement node) => 194 BreakStatement visitBreakStatement(BreakStatement node) => new BreakStatement(
197 astFactory.breakStatement(cloneToken(node.breakKeyword), 195 cloneToken(node.breakKeyword),
198 cloneNode(node.label), cloneToken(node.semicolon)); 196 cloneNode(node.label),
197 cloneToken(node.semicolon));
199 198
200 @override 199 @override
201 CascadeExpression visitCascadeExpression(CascadeExpression node) => 200 CascadeExpression visitCascadeExpression(CascadeExpression node) =>
202 astFactory.cascadeExpression( 201 new CascadeExpression(
203 cloneNode(node.target), cloneNodeList(node.cascadeSections)); 202 cloneNode(node.target), cloneNodeList(node.cascadeSections));
204 203
205 @override 204 @override
206 CatchClause visitCatchClause(CatchClause node) => astFactory.catchClause( 205 CatchClause visitCatchClause(CatchClause node) => new CatchClause(
207 cloneToken(node.onKeyword), 206 cloneToken(node.onKeyword),
208 cloneNode(node.exceptionType), 207 cloneNode(node.exceptionType),
209 cloneToken(node.catchKeyword), 208 cloneToken(node.catchKeyword),
210 cloneToken(node.leftParenthesis), 209 cloneToken(node.leftParenthesis),
211 cloneNode(node.exceptionParameter), 210 cloneNode(node.exceptionParameter),
212 cloneToken(node.comma), 211 cloneToken(node.comma),
213 cloneNode(node.stackTraceParameter), 212 cloneNode(node.stackTraceParameter),
214 cloneToken(node.rightParenthesis), 213 cloneToken(node.rightParenthesis),
215 cloneNode(node.body)); 214 cloneNode(node.body));
216 215
217 @override 216 @override
218 ClassDeclaration visitClassDeclaration(ClassDeclaration node) { 217 ClassDeclaration visitClassDeclaration(ClassDeclaration node) {
219 ClassDeclaration copy = astFactory.classDeclaration( 218 ClassDeclaration copy = new ClassDeclaration(
220 cloneNode(node.documentationComment), 219 cloneNode(node.documentationComment),
221 cloneNodeList(node.metadata), 220 cloneNodeList(node.metadata),
222 cloneToken(node.abstractKeyword), 221 cloneToken(node.abstractKeyword),
223 cloneToken(node.classKeyword), 222 cloneToken(node.classKeyword),
224 cloneNode(node.name), 223 cloneNode(node.name),
225 cloneNode(node.typeParameters), 224 cloneNode(node.typeParameters),
226 cloneNode(node.extendsClause), 225 cloneNode(node.extendsClause),
227 cloneNode(node.withClause), 226 cloneNode(node.withClause),
228 cloneNode(node.implementsClause), 227 cloneNode(node.implementsClause),
229 cloneToken(node.leftBracket), 228 cloneToken(node.leftBracket),
230 cloneNodeList(node.members), 229 cloneNodeList(node.members),
231 cloneToken(node.rightBracket)); 230 cloneToken(node.rightBracket));
232 copy.nativeClause = cloneNode(node.nativeClause); 231 copy.nativeClause = cloneNode(node.nativeClause);
233 return copy; 232 return copy;
234 } 233 }
235 234
236 @override 235 @override
237 ClassTypeAlias visitClassTypeAlias(ClassTypeAlias node) { 236 ClassTypeAlias visitClassTypeAlias(ClassTypeAlias node) {
238 cloneToken(node.abstractKeyword); 237 cloneToken(node.abstractKeyword);
239 return astFactory.classTypeAlias( 238 return new ClassTypeAlias(
240 cloneNode(node.documentationComment), 239 cloneNode(node.documentationComment),
241 cloneNodeList(node.metadata), 240 cloneNodeList(node.metadata),
242 cloneToken(node.typedefKeyword), 241 cloneToken(node.typedefKeyword),
243 cloneNode(node.name), 242 cloneNode(node.name),
244 cloneNode(node.typeParameters), 243 cloneNode(node.typeParameters),
245 cloneToken(node.equals), 244 cloneToken(node.equals),
246 cloneToken(node.abstractKeyword), 245 cloneToken(node.abstractKeyword),
247 cloneNode(node.superclass), 246 cloneNode(node.superclass),
248 cloneNode(node.withClause), 247 cloneNode(node.withClause),
249 cloneNode(node.implementsClause), 248 cloneNode(node.implementsClause),
250 cloneToken(node.semicolon)); 249 cloneToken(node.semicolon));
251 } 250 }
252 251
253 @override 252 @override
254 Comment visitComment(Comment node) { 253 Comment visitComment(Comment node) {
255 if (node.isDocumentation) { 254 if (node.isDocumentation) {
256 return astFactory.documentationComment( 255 return Comment.createDocumentationCommentWithReferences(
257 cloneTokenList(node.tokens), cloneNodeList(node.references)); 256 cloneTokenList(node.tokens), cloneNodeList(node.references));
258 } else if (node.isBlock) { 257 } else if (node.isBlock) {
259 return astFactory.blockComment(cloneTokenList(node.tokens)); 258 return Comment.createBlockComment(cloneTokenList(node.tokens));
260 } 259 }
261 return astFactory.endOfLineComment(cloneTokenList(node.tokens)); 260 return Comment.createEndOfLineComment(cloneTokenList(node.tokens));
262 } 261 }
263 262
264 @override 263 @override
265 CommentReference visitCommentReference(CommentReference node) => 264 CommentReference visitCommentReference(CommentReference node) =>
266 astFactory.commentReference( 265 new CommentReference(
267 cloneToken(node.newKeyword), cloneNode(node.identifier)); 266 cloneToken(node.newKeyword), cloneNode(node.identifier));
268 267
269 @override 268 @override
270 CompilationUnit visitCompilationUnit(CompilationUnit node) { 269 CompilationUnit visitCompilationUnit(CompilationUnit node) {
271 CompilationUnit clone = astFactory.compilationUnit( 270 CompilationUnit clone = new CompilationUnit(
272 cloneToken(node.beginToken), 271 cloneToken(node.beginToken),
273 cloneNode(node.scriptTag), 272 cloneNode(node.scriptTag),
274 cloneNodeList(node.directives), 273 cloneNodeList(node.directives),
275 cloneNodeList(node.declarations), 274 cloneNodeList(node.declarations),
276 cloneToken(node.endToken)); 275 cloneToken(node.endToken));
277 clone.lineInfo = node.lineInfo; 276 clone.lineInfo = node.lineInfo;
278 return clone; 277 return clone;
279 } 278 }
280 279
281 @override 280 @override
282 ConditionalExpression visitConditionalExpression( 281 ConditionalExpression visitConditionalExpression(
283 ConditionalExpression node) => 282 ConditionalExpression node) =>
284 astFactory.conditionalExpression( 283 new ConditionalExpression(
285 cloneNode(node.condition), 284 cloneNode(node.condition),
286 cloneToken(node.question), 285 cloneToken(node.question),
287 cloneNode(node.thenExpression), 286 cloneNode(node.thenExpression),
288 cloneToken(node.colon), 287 cloneToken(node.colon),
289 cloneNode(node.elseExpression)); 288 cloneNode(node.elseExpression));
290 289
291 @override 290 @override
292 Configuration visitConfiguration(Configuration node) => 291 Configuration visitConfiguration(Configuration node) => new Configuration(
293 astFactory.configuration( 292 cloneToken(node.ifKeyword),
294 cloneToken(node.ifKeyword), 293 cloneToken(node.leftParenthesis),
295 cloneToken(node.leftParenthesis), 294 cloneNode(node.name),
296 cloneNode(node.name), 295 cloneToken(node.equalToken),
297 cloneToken(node.equalToken), 296 cloneNode(node.value),
298 cloneNode(node.value), 297 cloneToken(node.rightParenthesis),
299 cloneToken(node.rightParenthesis), 298 cloneNode(node.uri));
300 cloneNode(node.uri));
301 299
302 @override 300 @override
303 ConstructorDeclaration visitConstructorDeclaration( 301 ConstructorDeclaration visitConstructorDeclaration(
304 ConstructorDeclaration node) => 302 ConstructorDeclaration node) =>
305 astFactory.constructorDeclaration( 303 new ConstructorDeclaration(
306 cloneNode(node.documentationComment), 304 cloneNode(node.documentationComment),
307 cloneNodeList(node.metadata), 305 cloneNodeList(node.metadata),
308 cloneToken(node.externalKeyword), 306 cloneToken(node.externalKeyword),
309 cloneToken(node.constKeyword), 307 cloneToken(node.constKeyword),
310 cloneToken(node.factoryKeyword), 308 cloneToken(node.factoryKeyword),
311 cloneNode(node.returnType), 309 cloneNode(node.returnType),
312 cloneToken(node.period), 310 cloneToken(node.period),
313 cloneNode(node.name), 311 cloneNode(node.name),
314 cloneNode(node.parameters), 312 cloneNode(node.parameters),
315 cloneToken(node.separator), 313 cloneToken(node.separator),
316 cloneNodeList(node.initializers), 314 cloneNodeList(node.initializers),
317 cloneNode(node.redirectedConstructor), 315 cloneNode(node.redirectedConstructor),
318 cloneNode(node.body)); 316 cloneNode(node.body));
319 317
320 @override 318 @override
321 ConstructorFieldInitializer visitConstructorFieldInitializer( 319 ConstructorFieldInitializer visitConstructorFieldInitializer(
322 ConstructorFieldInitializer node) => 320 ConstructorFieldInitializer node) =>
323 astFactory.constructorFieldInitializer( 321 new ConstructorFieldInitializer(
324 cloneToken(node.thisKeyword), 322 cloneToken(node.thisKeyword),
325 cloneToken(node.period), 323 cloneToken(node.period),
326 cloneNode(node.fieldName), 324 cloneNode(node.fieldName),
327 cloneToken(node.equals), 325 cloneToken(node.equals),
328 cloneNode(node.expression)); 326 cloneNode(node.expression));
329 327
330 @override 328 @override
331 ConstructorName visitConstructorName(ConstructorName node) => 329 ConstructorName visitConstructorName(ConstructorName node) =>
332 astFactory.constructorName( 330 new ConstructorName(
333 cloneNode(node.type), cloneToken(node.period), cloneNode(node.name)); 331 cloneNode(node.type), cloneToken(node.period), cloneNode(node.name));
334 332
335 @override 333 @override
336 ContinueStatement visitContinueStatement(ContinueStatement node) => 334 ContinueStatement visitContinueStatement(ContinueStatement node) =>
337 astFactory.continueStatement(cloneToken(node.continueKeyword), 335 new ContinueStatement(cloneToken(node.continueKeyword),
338 cloneNode(node.label), cloneToken(node.semicolon)); 336 cloneNode(node.label), cloneToken(node.semicolon));
339 337
340 @override 338 @override
341 DeclaredIdentifier visitDeclaredIdentifier(DeclaredIdentifier node) => 339 DeclaredIdentifier visitDeclaredIdentifier(DeclaredIdentifier node) =>
342 astFactory.declaredIdentifier( 340 new DeclaredIdentifier(
343 cloneNode(node.documentationComment), 341 cloneNode(node.documentationComment),
344 cloneNodeList(node.metadata), 342 cloneNodeList(node.metadata),
345 cloneToken(node.keyword), 343 cloneToken(node.keyword),
346 cloneNode(node.type), 344 cloneNode(node.type),
347 cloneNode(node.identifier)); 345 cloneNode(node.identifier));
348 346
349 @override 347 @override
350 DefaultFormalParameter visitDefaultFormalParameter( 348 DefaultFormalParameter visitDefaultFormalParameter(
351 DefaultFormalParameter node) => 349 DefaultFormalParameter node) =>
352 astFactory.defaultFormalParameter(cloneNode(node.parameter), node.kind, 350 new DefaultFormalParameter(cloneNode(node.parameter), node.kind,
353 cloneToken(node.separator), cloneNode(node.defaultValue)); 351 cloneToken(node.separator), cloneNode(node.defaultValue));
354 352
355 @override 353 @override
356 DoStatement visitDoStatement(DoStatement node) => astFactory.doStatement( 354 DoStatement visitDoStatement(DoStatement node) => new DoStatement(
357 cloneToken(node.doKeyword), 355 cloneToken(node.doKeyword),
358 cloneNode(node.body), 356 cloneNode(node.body),
359 cloneToken(node.whileKeyword), 357 cloneToken(node.whileKeyword),
360 cloneToken(node.leftParenthesis), 358 cloneToken(node.leftParenthesis),
361 cloneNode(node.condition), 359 cloneNode(node.condition),
362 cloneToken(node.rightParenthesis), 360 cloneToken(node.rightParenthesis),
363 cloneToken(node.semicolon)); 361 cloneToken(node.semicolon));
364 362
365 @override 363 @override
366 DottedName visitDottedName(DottedName node) => 364 DottedName visitDottedName(DottedName node) =>
367 astFactory.dottedName(cloneNodeList(node.components)); 365 new DottedName(cloneNodeList(node.components));
368 366
369 @override 367 @override
370 DoubleLiteral visitDoubleLiteral(DoubleLiteral node) => 368 DoubleLiteral visitDoubleLiteral(DoubleLiteral node) =>
371 astFactory.doubleLiteral(cloneToken(node.literal), node.value); 369 new DoubleLiteral(cloneToken(node.literal), node.value);
372 370
373 @override 371 @override
374 EmptyFunctionBody visitEmptyFunctionBody(EmptyFunctionBody node) => 372 EmptyFunctionBody visitEmptyFunctionBody(EmptyFunctionBody node) =>
375 astFactory.emptyFunctionBody(cloneToken(node.semicolon)); 373 new EmptyFunctionBody(cloneToken(node.semicolon));
376 374
377 @override 375 @override
378 EmptyStatement visitEmptyStatement(EmptyStatement node) => 376 EmptyStatement visitEmptyStatement(EmptyStatement node) =>
379 astFactory.emptyStatement(cloneToken(node.semicolon)); 377 new EmptyStatement(cloneToken(node.semicolon));
380 378
381 @override 379 @override
382 AstNode visitEnumConstantDeclaration(EnumConstantDeclaration node) => 380 AstNode visitEnumConstantDeclaration(EnumConstantDeclaration node) =>
383 astFactory.enumConstantDeclaration(cloneNode(node.documentationComment), 381 new EnumConstantDeclaration(cloneNode(node.documentationComment),
384 cloneNodeList(node.metadata), cloneNode(node.name)); 382 cloneNodeList(node.metadata), cloneNode(node.name));
385 383
386 @override 384 @override
387 EnumDeclaration visitEnumDeclaration(EnumDeclaration node) => 385 EnumDeclaration visitEnumDeclaration(EnumDeclaration node) =>
388 astFactory.enumDeclaration( 386 new EnumDeclaration(
389 cloneNode(node.documentationComment), 387 cloneNode(node.documentationComment),
390 cloneNodeList(node.metadata), 388 cloneNodeList(node.metadata),
391 cloneToken(node.enumKeyword), 389 cloneToken(node.enumKeyword),
392 cloneNode(node.name), 390 cloneNode(node.name),
393 cloneToken(node.leftBracket), 391 cloneToken(node.leftBracket),
394 cloneNodeList(node.constants), 392 cloneNodeList(node.constants),
395 cloneToken(node.rightBracket)); 393 cloneToken(node.rightBracket));
396 394
397 @override 395 @override
398 ExportDirective visitExportDirective(ExportDirective node) { 396 ExportDirective visitExportDirective(ExportDirective node) {
399 ExportDirectiveImpl directive = astFactory.exportDirective( 397 ExportDirectiveImpl directive = new ExportDirective(
400 cloneNode(node.documentationComment), 398 cloneNode(node.documentationComment),
401 cloneNodeList(node.metadata), 399 cloneNodeList(node.metadata),
402 cloneToken(node.keyword), 400 cloneToken(node.keyword),
403 cloneNode(node.uri), 401 cloneNode(node.uri),
404 cloneNodeList(node.configurations), 402 cloneNodeList(node.configurations),
405 cloneNodeList(node.combinators), 403 cloneNodeList(node.combinators),
406 cloneToken(node.semicolon)); 404 cloneToken(node.semicolon));
407 directive.selectedUriContent = node.selectedUriContent; 405 directive.selectedUriContent = node.selectedUriContent;
408 directive.selectedSource = node.selectedSource; 406 directive.selectedSource = node.selectedSource;
409 directive.uriSource = node.uriSource; 407 directive.uriSource = node.uriSource;
410 directive.uriContent = node.uriContent; 408 directive.uriContent = node.uriContent;
411 return directive; 409 return directive;
412 } 410 }
413 411
414 @override 412 @override
415 ExpressionFunctionBody visitExpressionFunctionBody( 413 ExpressionFunctionBody visitExpressionFunctionBody(
416 ExpressionFunctionBody node) => 414 ExpressionFunctionBody node) =>
417 astFactory.expressionFunctionBody( 415 new ExpressionFunctionBody(
418 cloneToken(node.keyword), 416 cloneToken(node.keyword),
419 cloneToken(node.functionDefinition), 417 cloneToken(node.functionDefinition),
420 cloneNode(node.expression), 418 cloneNode(node.expression),
421 cloneToken(node.semicolon)); 419 cloneToken(node.semicolon));
422 420
423 @override 421 @override
424 ExpressionStatement visitExpressionStatement(ExpressionStatement node) => 422 ExpressionStatement visitExpressionStatement(ExpressionStatement node) =>
425 astFactory.expressionStatement( 423 new ExpressionStatement(
426 cloneNode(node.expression), cloneToken(node.semicolon)); 424 cloneNode(node.expression), cloneToken(node.semicolon));
427 425
428 @override 426 @override
429 ExtendsClause visitExtendsClause(ExtendsClause node) => 427 ExtendsClause visitExtendsClause(ExtendsClause node) => new ExtendsClause(
430 astFactory.extendsClause( 428 cloneToken(node.extendsKeyword), cloneNode(node.superclass));
431 cloneToken(node.extendsKeyword), cloneNode(node.superclass));
432 429
433 @override 430 @override
434 FieldDeclaration visitFieldDeclaration(FieldDeclaration node) => 431 FieldDeclaration visitFieldDeclaration(FieldDeclaration node) =>
435 astFactory.fieldDeclaration( 432 new FieldDeclaration(
436 cloneNode(node.documentationComment), 433 cloneNode(node.documentationComment),
437 cloneNodeList(node.metadata), 434 cloneNodeList(node.metadata),
438 cloneToken(node.staticKeyword), 435 cloneToken(node.staticKeyword),
439 cloneNode(node.fields), 436 cloneNode(node.fields),
440 cloneToken(node.semicolon)); 437 cloneToken(node.semicolon));
441 438
442 @override 439 @override
443 FieldFormalParameter visitFieldFormalParameter(FieldFormalParameter node) => 440 FieldFormalParameter visitFieldFormalParameter(FieldFormalParameter node) =>
444 astFactory.fieldFormalParameter( 441 new FieldFormalParameter(
445 cloneNode(node.documentationComment), 442 cloneNode(node.documentationComment),
446 cloneNodeList(node.metadata), 443 cloneNodeList(node.metadata),
447 cloneToken(node.keyword), 444 cloneToken(node.keyword),
448 cloneNode(node.type), 445 cloneNode(node.type),
449 cloneToken(node.thisKeyword), 446 cloneToken(node.thisKeyword),
450 cloneToken(node.period), 447 cloneToken(node.period),
451 cloneNode(node.identifier), 448 cloneNode(node.identifier),
452 cloneNode(node.typeParameters), 449 cloneNode(node.typeParameters),
453 cloneNode(node.parameters)); 450 cloneNode(node.parameters));
454 451
455 @override 452 @override
456 ForEachStatement visitForEachStatement(ForEachStatement node) { 453 ForEachStatement visitForEachStatement(ForEachStatement node) {
457 DeclaredIdentifier loopVariable = node.loopVariable; 454 DeclaredIdentifier loopVariable = node.loopVariable;
458 if (loopVariable == null) { 455 if (loopVariable == null) {
459 return astFactory.forEachStatementWithReference( 456 return new ForEachStatement.withReference(
460 cloneToken(node.awaitKeyword), 457 cloneToken(node.awaitKeyword),
461 cloneToken(node.forKeyword), 458 cloneToken(node.forKeyword),
462 cloneToken(node.leftParenthesis), 459 cloneToken(node.leftParenthesis),
463 cloneNode(node.identifier), 460 cloneNode(node.identifier),
464 cloneToken(node.inKeyword), 461 cloneToken(node.inKeyword),
465 cloneNode(node.iterable), 462 cloneNode(node.iterable),
466 cloneToken(node.rightParenthesis), 463 cloneToken(node.rightParenthesis),
467 cloneNode(node.body)); 464 cloneNode(node.body));
468 } 465 }
469 return astFactory.forEachStatementWithDeclaration( 466 return new ForEachStatement.withDeclaration(
470 cloneToken(node.awaitKeyword), 467 cloneToken(node.awaitKeyword),
471 cloneToken(node.forKeyword), 468 cloneToken(node.forKeyword),
472 cloneToken(node.leftParenthesis), 469 cloneToken(node.leftParenthesis),
473 cloneNode(loopVariable), 470 cloneNode(loopVariable),
474 cloneToken(node.inKeyword), 471 cloneToken(node.inKeyword),
475 cloneNode(node.iterable), 472 cloneNode(node.iterable),
476 cloneToken(node.rightParenthesis), 473 cloneToken(node.rightParenthesis),
477 cloneNode(node.body)); 474 cloneNode(node.body));
478 } 475 }
479 476
480 @override 477 @override
481 FormalParameterList visitFormalParameterList(FormalParameterList node) => 478 FormalParameterList visitFormalParameterList(FormalParameterList node) =>
482 astFactory.formalParameterList( 479 new FormalParameterList(
483 cloneToken(node.leftParenthesis), 480 cloneToken(node.leftParenthesis),
484 cloneNodeList(node.parameters), 481 cloneNodeList(node.parameters),
485 cloneToken(node.leftDelimiter), 482 cloneToken(node.leftDelimiter),
486 cloneToken(node.rightDelimiter), 483 cloneToken(node.rightDelimiter),
487 cloneToken(node.rightParenthesis)); 484 cloneToken(node.rightParenthesis));
488 485
489 @override 486 @override
490 ForStatement visitForStatement(ForStatement node) => astFactory.forStatement( 487 ForStatement visitForStatement(ForStatement node) => new ForStatement(
491 cloneToken(node.forKeyword), 488 cloneToken(node.forKeyword),
492 cloneToken(node.leftParenthesis), 489 cloneToken(node.leftParenthesis),
493 cloneNode(node.variables), 490 cloneNode(node.variables),
494 cloneNode(node.initialization), 491 cloneNode(node.initialization),
495 cloneToken(node.leftSeparator), 492 cloneToken(node.leftSeparator),
496 cloneNode(node.condition), 493 cloneNode(node.condition),
497 cloneToken(node.rightSeparator), 494 cloneToken(node.rightSeparator),
498 cloneNodeList(node.updaters), 495 cloneNodeList(node.updaters),
499 cloneToken(node.rightParenthesis), 496 cloneToken(node.rightParenthesis),
500 cloneNode(node.body)); 497 cloneNode(node.body));
501 498
502 @override 499 @override
503 FunctionDeclaration visitFunctionDeclaration(FunctionDeclaration node) => 500 FunctionDeclaration visitFunctionDeclaration(FunctionDeclaration node) =>
504 astFactory.functionDeclaration( 501 new FunctionDeclaration(
505 cloneNode(node.documentationComment), 502 cloneNode(node.documentationComment),
506 cloneNodeList(node.metadata), 503 cloneNodeList(node.metadata),
507 cloneToken(node.externalKeyword), 504 cloneToken(node.externalKeyword),
508 cloneNode(node.returnType), 505 cloneNode(node.returnType),
509 cloneToken(node.propertyKeyword), 506 cloneToken(node.propertyKeyword),
510 cloneNode(node.name), 507 cloneNode(node.name),
511 cloneNode(node.functionExpression)); 508 cloneNode(node.functionExpression));
512 509
513 @override 510 @override
514 FunctionDeclarationStatement visitFunctionDeclarationStatement( 511 FunctionDeclarationStatement visitFunctionDeclarationStatement(
515 FunctionDeclarationStatement node) => 512 FunctionDeclarationStatement node) =>
516 astFactory 513 new FunctionDeclarationStatement(cloneNode(node.functionDeclaration));
517 .functionDeclarationStatement(cloneNode(node.functionDeclaration));
518 514
519 @override 515 @override
520 FunctionExpression visitFunctionExpression(FunctionExpression node) => 516 FunctionExpression visitFunctionExpression(FunctionExpression node) =>
521 astFactory.functionExpression(cloneNode(node.typeParameters), 517 new FunctionExpression(cloneNode(node.typeParameters),
522 cloneNode(node.parameters), cloneNode(node.body)); 518 cloneNode(node.parameters), cloneNode(node.body));
523 519
524 @override 520 @override
525 FunctionExpressionInvocation visitFunctionExpressionInvocation( 521 FunctionExpressionInvocation visitFunctionExpressionInvocation(
526 FunctionExpressionInvocation node) => 522 FunctionExpressionInvocation node) =>
527 astFactory.functionExpressionInvocation(cloneNode(node.function), 523 new FunctionExpressionInvocation(cloneNode(node.function),
528 cloneNode(node.typeArguments), cloneNode(node.argumentList)); 524 cloneNode(node.typeArguments), cloneNode(node.argumentList));
529 525
530 @override 526 @override
531 FunctionTypeAlias visitFunctionTypeAlias(FunctionTypeAlias node) => 527 FunctionTypeAlias visitFunctionTypeAlias(FunctionTypeAlias node) =>
532 astFactory.functionTypeAlias( 528 new FunctionTypeAlias(
533 cloneNode(node.documentationComment), 529 cloneNode(node.documentationComment),
534 cloneNodeList(node.metadata), 530 cloneNodeList(node.metadata),
535 cloneToken(node.typedefKeyword), 531 cloneToken(node.typedefKeyword),
536 cloneNode(node.returnType), 532 cloneNode(node.returnType),
537 cloneNode(node.name), 533 cloneNode(node.name),
538 cloneNode(node.typeParameters), 534 cloneNode(node.typeParameters),
539 cloneNode(node.parameters), 535 cloneNode(node.parameters),
540 cloneToken(node.semicolon)); 536 cloneToken(node.semicolon));
541 537
542 @override 538 @override
543 FunctionTypedFormalParameter visitFunctionTypedFormalParameter( 539 FunctionTypedFormalParameter visitFunctionTypedFormalParameter(
544 FunctionTypedFormalParameter node) => 540 FunctionTypedFormalParameter node) =>
545 astFactory.functionTypedFormalParameter( 541 new FunctionTypedFormalParameter(
546 cloneNode(node.documentationComment), 542 cloneNode(node.documentationComment),
547 cloneNodeList(node.metadata), 543 cloneNodeList(node.metadata),
548 cloneNode(node.returnType), 544 cloneNode(node.returnType),
549 cloneNode(node.identifier), 545 cloneNode(node.identifier),
550 cloneNode(node.typeParameters), 546 cloneNode(node.typeParameters),
551 cloneNode(node.parameters)); 547 cloneNode(node.parameters));
552 548
553 @override 549 @override
554 HideCombinator visitHideCombinator(HideCombinator node) => 550 HideCombinator visitHideCombinator(HideCombinator node) => new HideCombinator(
555 astFactory.hideCombinator( 551 cloneToken(node.keyword), cloneNodeList(node.hiddenNames));
556 cloneToken(node.keyword), cloneNodeList(node.hiddenNames));
557 552
558 @override 553 @override
559 IfStatement visitIfStatement(IfStatement node) => astFactory.ifStatement( 554 IfStatement visitIfStatement(IfStatement node) => new IfStatement(
560 cloneToken(node.ifKeyword), 555 cloneToken(node.ifKeyword),
561 cloneToken(node.leftParenthesis), 556 cloneToken(node.leftParenthesis),
562 cloneNode(node.condition), 557 cloneNode(node.condition),
563 cloneToken(node.rightParenthesis), 558 cloneToken(node.rightParenthesis),
564 cloneNode(node.thenStatement), 559 cloneNode(node.thenStatement),
565 cloneToken(node.elseKeyword), 560 cloneToken(node.elseKeyword),
566 cloneNode(node.elseStatement)); 561 cloneNode(node.elseStatement));
567 562
568 @override 563 @override
569 ImplementsClause visitImplementsClause(ImplementsClause node) => 564 ImplementsClause visitImplementsClause(ImplementsClause node) =>
570 astFactory.implementsClause( 565 new ImplementsClause(
571 cloneToken(node.implementsKeyword), cloneNodeList(node.interfaces)); 566 cloneToken(node.implementsKeyword), cloneNodeList(node.interfaces));
572 567
573 @override 568 @override
574 ImportDirective visitImportDirective(ImportDirective node) { 569 ImportDirective visitImportDirective(ImportDirective node) {
575 ImportDirectiveImpl directive = astFactory.importDirective( 570 ImportDirectiveImpl directive = new ImportDirective(
576 cloneNode(node.documentationComment), 571 cloneNode(node.documentationComment),
577 cloneNodeList(node.metadata), 572 cloneNodeList(node.metadata),
578 cloneToken(node.keyword), 573 cloneToken(node.keyword),
579 cloneNode(node.uri), 574 cloneNode(node.uri),
580 cloneNodeList(node.configurations), 575 cloneNodeList(node.configurations),
581 cloneToken(node.deferredKeyword), 576 cloneToken(node.deferredKeyword),
582 cloneToken(node.asKeyword), 577 cloneToken(node.asKeyword),
583 cloneNode(node.prefix), 578 cloneNode(node.prefix),
584 cloneNodeList(node.combinators), 579 cloneNodeList(node.combinators),
585 cloneToken(node.semicolon)); 580 cloneToken(node.semicolon));
586 directive.selectedUriContent = node.selectedUriContent; 581 directive.selectedUriContent = node.selectedUriContent;
587 directive.selectedSource = node.selectedSource; 582 directive.selectedSource = node.selectedSource;
588 directive.uriSource = node.uriSource; 583 directive.uriSource = node.uriSource;
589 directive.uriContent = node.uriContent; 584 directive.uriContent = node.uriContent;
590 return directive; 585 return directive;
591 } 586 }
592 587
593 @override 588 @override
594 IndexExpression visitIndexExpression(IndexExpression node) { 589 IndexExpression visitIndexExpression(IndexExpression node) {
595 Token period = node.period; 590 Token period = node.period;
596 if (period == null) { 591 if (period == null) {
597 return astFactory.indexExpressionForTarget( 592 return new IndexExpression.forTarget(
598 cloneNode(node.target), 593 cloneNode(node.target),
599 cloneToken(node.leftBracket), 594 cloneToken(node.leftBracket),
600 cloneNode(node.index), 595 cloneNode(node.index),
601 cloneToken(node.rightBracket)); 596 cloneToken(node.rightBracket));
602 } else { 597 } else {
603 return astFactory.indexExpressionForCascade( 598 return new IndexExpression.forCascade(
604 cloneToken(period), 599 cloneToken(period),
605 cloneToken(node.leftBracket), 600 cloneToken(node.leftBracket),
606 cloneNode(node.index), 601 cloneNode(node.index),
607 cloneToken(node.rightBracket)); 602 cloneToken(node.rightBracket));
608 } 603 }
609 } 604 }
610 605
611 @override 606 @override
612 InstanceCreationExpression visitInstanceCreationExpression( 607 InstanceCreationExpression visitInstanceCreationExpression(
613 InstanceCreationExpression node) => 608 InstanceCreationExpression node) =>
614 astFactory.instanceCreationExpression(cloneToken(node.keyword), 609 new InstanceCreationExpression(cloneToken(node.keyword),
615 cloneNode(node.constructorName), cloneNode(node.argumentList)); 610 cloneNode(node.constructorName), cloneNode(node.argumentList));
616 611
617 @override 612 @override
618 IntegerLiteral visitIntegerLiteral(IntegerLiteral node) => 613 IntegerLiteral visitIntegerLiteral(IntegerLiteral node) =>
619 astFactory.integerLiteral(cloneToken(node.literal), node.value); 614 new IntegerLiteral(cloneToken(node.literal), node.value);
620 615
621 @override 616 @override
622 InterpolationExpression visitInterpolationExpression( 617 InterpolationExpression visitInterpolationExpression(
623 InterpolationExpression node) => 618 InterpolationExpression node) =>
624 astFactory.interpolationExpression(cloneToken(node.leftBracket), 619 new InterpolationExpression(cloneToken(node.leftBracket),
625 cloneNode(node.expression), cloneToken(node.rightBracket)); 620 cloneNode(node.expression), cloneToken(node.rightBracket));
626 621
627 @override 622 @override
628 InterpolationString visitInterpolationString(InterpolationString node) => 623 InterpolationString visitInterpolationString(InterpolationString node) =>
629 astFactory.interpolationString(cloneToken(node.contents), node.value); 624 new InterpolationString(cloneToken(node.contents), node.value);
630 625
631 @override 626 @override
632 IsExpression visitIsExpression(IsExpression node) => astFactory.isExpression( 627 IsExpression visitIsExpression(IsExpression node) => new IsExpression(
633 cloneNode(node.expression), 628 cloneNode(node.expression),
634 cloneToken(node.isOperator), 629 cloneToken(node.isOperator),
635 cloneToken(node.notOperator), 630 cloneToken(node.notOperator),
636 cloneNode(node.type)); 631 cloneNode(node.type));
637 632
638 @override 633 @override
639 Label visitLabel(Label node) => 634 Label visitLabel(Label node) =>
640 astFactory.label(cloneNode(node.label), cloneToken(node.colon)); 635 new Label(cloneNode(node.label), cloneToken(node.colon));
641 636
642 @override 637 @override
643 LabeledStatement visitLabeledStatement(LabeledStatement node) => astFactory 638 LabeledStatement visitLabeledStatement(LabeledStatement node) =>
644 .labeledStatement(cloneNodeList(node.labels), cloneNode(node.statement)); 639 new LabeledStatement(
640 cloneNodeList(node.labels), cloneNode(node.statement));
645 641
646 @override 642 @override
647 LibraryDirective visitLibraryDirective(LibraryDirective node) => 643 LibraryDirective visitLibraryDirective(LibraryDirective node) =>
648 astFactory.libraryDirective( 644 new LibraryDirective(
649 cloneNode(node.documentationComment), 645 cloneNode(node.documentationComment),
650 cloneNodeList(node.metadata), 646 cloneNodeList(node.metadata),
651 cloneToken(node.libraryKeyword), 647 cloneToken(node.libraryKeyword),
652 cloneNode(node.name), 648 cloneNode(node.name),
653 cloneToken(node.semicolon)); 649 cloneToken(node.semicolon));
654 650
655 @override 651 @override
656 LibraryIdentifier visitLibraryIdentifier(LibraryIdentifier node) => 652 LibraryIdentifier visitLibraryIdentifier(LibraryIdentifier node) =>
657 astFactory.libraryIdentifier(cloneNodeList(node.components)); 653 new LibraryIdentifier(cloneNodeList(node.components));
658 654
659 @override 655 @override
660 ListLiteral visitListLiteral(ListLiteral node) => astFactory.listLiteral( 656 ListLiteral visitListLiteral(ListLiteral node) => new ListLiteral(
661 cloneToken(node.constKeyword), 657 cloneToken(node.constKeyword),
662 cloneNode(node.typeArguments), 658 cloneNode(node.typeArguments),
663 cloneToken(node.leftBracket), 659 cloneToken(node.leftBracket),
664 cloneNodeList(node.elements), 660 cloneNodeList(node.elements),
665 cloneToken(node.rightBracket)); 661 cloneToken(node.rightBracket));
666 662
667 @override 663 @override
668 MapLiteral visitMapLiteral(MapLiteral node) => astFactory.mapLiteral( 664 MapLiteral visitMapLiteral(MapLiteral node) => new MapLiteral(
669 cloneToken(node.constKeyword), 665 cloneToken(node.constKeyword),
670 cloneNode(node.typeArguments), 666 cloneNode(node.typeArguments),
671 cloneToken(node.leftBracket), 667 cloneToken(node.leftBracket),
672 cloneNodeList(node.entries), 668 cloneNodeList(node.entries),
673 cloneToken(node.rightBracket)); 669 cloneToken(node.rightBracket));
674 670
675 @override 671 @override
676 MapLiteralEntry visitMapLiteralEntry(MapLiteralEntry node) => 672 MapLiteralEntry visitMapLiteralEntry(MapLiteralEntry node) =>
677 astFactory.mapLiteralEntry(cloneNode(node.key), 673 new MapLiteralEntry(cloneNode(node.key), cloneToken(node.separator),
678 cloneToken(node.separator), cloneNode(node.value)); 674 cloneNode(node.value));
679 675
680 @override 676 @override
681 MethodDeclaration visitMethodDeclaration(MethodDeclaration node) => 677 MethodDeclaration visitMethodDeclaration(MethodDeclaration node) =>
682 astFactory.methodDeclaration( 678 new MethodDeclaration(
683 cloneNode(node.documentationComment), 679 cloneNode(node.documentationComment),
684 cloneNodeList(node.metadata), 680 cloneNodeList(node.metadata),
685 cloneToken(node.externalKeyword), 681 cloneToken(node.externalKeyword),
686 cloneToken(node.modifierKeyword), 682 cloneToken(node.modifierKeyword),
687 cloneNode(node.returnType), 683 cloneNode(node.returnType),
688 cloneToken(node.propertyKeyword), 684 cloneToken(node.propertyKeyword),
689 cloneToken(node.operatorKeyword), 685 cloneToken(node.operatorKeyword),
690 cloneNode(node.name), 686 cloneNode(node.name),
691 cloneNode(node.typeParameters), 687 cloneNode(node.typeParameters),
692 cloneNode(node.parameters), 688 cloneNode(node.parameters),
693 cloneNode(node.body)); 689 cloneNode(node.body));
694 690
695 @override 691 @override
696 MethodInvocation visitMethodInvocation(MethodInvocation node) => 692 MethodInvocation visitMethodInvocation(MethodInvocation node) =>
697 astFactory.methodInvocation( 693 new MethodInvocation(
698 cloneNode(node.target), 694 cloneNode(node.target),
699 cloneToken(node.operator), 695 cloneToken(node.operator),
700 cloneNode(node.methodName), 696 cloneNode(node.methodName),
701 cloneNode(node.typeArguments), 697 cloneNode(node.typeArguments),
702 cloneNode(node.argumentList)); 698 cloneNode(node.argumentList));
703 699
704 @override 700 @override
705 NamedExpression visitNamedExpression(NamedExpression node) => astFactory 701 NamedExpression visitNamedExpression(NamedExpression node) =>
706 .namedExpression(cloneNode(node.name), cloneNode(node.expression)); 702 new NamedExpression(cloneNode(node.name), cloneNode(node.expression));
707 703
708 @override 704 @override
709 AstNode visitNativeClause(NativeClause node) => astFactory.nativeClause( 705 AstNode visitNativeClause(NativeClause node) =>
710 cloneToken(node.nativeKeyword), cloneNode(node.name)); 706 new NativeClause(cloneToken(node.nativeKeyword), cloneNode(node.name));
711 707
712 @override 708 @override
713 NativeFunctionBody visitNativeFunctionBody(NativeFunctionBody node) => 709 NativeFunctionBody visitNativeFunctionBody(NativeFunctionBody node) =>
714 astFactory.nativeFunctionBody(cloneToken(node.nativeKeyword), 710 new NativeFunctionBody(cloneToken(node.nativeKeyword),
715 cloneNode(node.stringLiteral), cloneToken(node.semicolon)); 711 cloneNode(node.stringLiteral), cloneToken(node.semicolon));
716 712
717 @override 713 @override
718 NullLiteral visitNullLiteral(NullLiteral node) => 714 NullLiteral visitNullLiteral(NullLiteral node) =>
719 astFactory.nullLiteral(cloneToken(node.literal)); 715 new NullLiteral(cloneToken(node.literal));
720 716
721 @override 717 @override
722 ParenthesizedExpression visitParenthesizedExpression( 718 ParenthesizedExpression visitParenthesizedExpression(
723 ParenthesizedExpression node) => 719 ParenthesizedExpression node) =>
724 astFactory.parenthesizedExpression(cloneToken(node.leftParenthesis), 720 new ParenthesizedExpression(cloneToken(node.leftParenthesis),
725 cloneNode(node.expression), cloneToken(node.rightParenthesis)); 721 cloneNode(node.expression), cloneToken(node.rightParenthesis));
726 722
727 @override 723 @override
728 PartDirective visitPartDirective(PartDirective node) { 724 PartDirective visitPartDirective(PartDirective node) {
729 PartDirective directive = astFactory.partDirective( 725 PartDirective directive = new PartDirective(
730 cloneNode(node.documentationComment), 726 cloneNode(node.documentationComment),
731 cloneNodeList(node.metadata), 727 cloneNodeList(node.metadata),
732 cloneToken(node.partKeyword), 728 cloneToken(node.partKeyword),
733 cloneNode(node.uri), 729 cloneNode(node.uri),
734 cloneToken(node.semicolon)); 730 cloneToken(node.semicolon));
735 directive.uriSource = node.uriSource; 731 directive.uriSource = node.uriSource;
736 directive.uriContent = node.uriContent; 732 directive.uriContent = node.uriContent;
737 return directive; 733 return directive;
738 } 734 }
739 735
740 @override 736 @override
741 PartOfDirective visitPartOfDirective(PartOfDirective node) => 737 PartOfDirective visitPartOfDirective(PartOfDirective node) =>
742 astFactory.partOfDirective( 738 new PartOfDirective(
743 cloneNode(node.documentationComment), 739 cloneNode(node.documentationComment),
744 cloneNodeList(node.metadata), 740 cloneNodeList(node.metadata),
745 cloneToken(node.partKeyword), 741 cloneToken(node.partKeyword),
746 cloneToken(node.ofKeyword), 742 cloneToken(node.ofKeyword),
747 cloneNode(node.uri), 743 cloneNode(node.uri),
748 cloneNode(node.libraryName), 744 cloneNode(node.libraryName),
749 cloneToken(node.semicolon)); 745 cloneToken(node.semicolon));
750 746
751 @override 747 @override
752 PostfixExpression visitPostfixExpression(PostfixExpression node) => astFactory 748 PostfixExpression visitPostfixExpression(PostfixExpression node) =>
753 .postfixExpression(cloneNode(node.operand), cloneToken(node.operator)); 749 new PostfixExpression(cloneNode(node.operand), cloneToken(node.operator));
754 750
755 @override 751 @override
756 PrefixedIdentifier visitPrefixedIdentifier(PrefixedIdentifier node) => 752 PrefixedIdentifier visitPrefixedIdentifier(PrefixedIdentifier node) =>
757 astFactory.prefixedIdentifier(cloneNode(node.prefix), 753 new PrefixedIdentifier(cloneNode(node.prefix), cloneToken(node.period),
758 cloneToken(node.period), cloneNode(node.identifier)); 754 cloneNode(node.identifier));
759 755
760 @override 756 @override
761 PrefixExpression visitPrefixExpression(PrefixExpression node) => astFactory 757 PrefixExpression visitPrefixExpression(PrefixExpression node) =>
762 .prefixExpression(cloneToken(node.operator), cloneNode(node.operand)); 758 new PrefixExpression(cloneToken(node.operator), cloneNode(node.operand));
763 759
764 @override 760 @override
765 PropertyAccess visitPropertyAccess(PropertyAccess node) => 761 PropertyAccess visitPropertyAccess(PropertyAccess node) => new PropertyAccess(
766 astFactory.propertyAccess(cloneNode(node.target), 762 cloneNode(node.target),
767 cloneToken(node.operator), cloneNode(node.propertyName)); 763 cloneToken(node.operator),
764 cloneNode(node.propertyName));
768 765
769 @override 766 @override
770 RedirectingConstructorInvocation visitRedirectingConstructorInvocation( 767 RedirectingConstructorInvocation visitRedirectingConstructorInvocation(
771 RedirectingConstructorInvocation node) => 768 RedirectingConstructorInvocation node) =>
772 astFactory.redirectingConstructorInvocation( 769 new RedirectingConstructorInvocation(
773 cloneToken(node.thisKeyword), 770 cloneToken(node.thisKeyword),
774 cloneToken(node.period), 771 cloneToken(node.period),
775 cloneNode(node.constructorName), 772 cloneNode(node.constructorName),
776 cloneNode(node.argumentList)); 773 cloneNode(node.argumentList));
777 774
778 @override 775 @override
779 RethrowExpression visitRethrowExpression(RethrowExpression node) => 776 RethrowExpression visitRethrowExpression(RethrowExpression node) =>
780 astFactory.rethrowExpression(cloneToken(node.rethrowKeyword)); 777 new RethrowExpression(cloneToken(node.rethrowKeyword));
781 778
782 @override 779 @override
783 ReturnStatement visitReturnStatement(ReturnStatement node) => 780 ReturnStatement visitReturnStatement(ReturnStatement node) =>
784 astFactory.returnStatement(cloneToken(node.returnKeyword), 781 new ReturnStatement(cloneToken(node.returnKeyword),
785 cloneNode(node.expression), cloneToken(node.semicolon)); 782 cloneNode(node.expression), cloneToken(node.semicolon));
786 783
787 @override 784 @override
788 ScriptTag visitScriptTag(ScriptTag node) => 785 ScriptTag visitScriptTag(ScriptTag node) =>
789 astFactory.scriptTag(cloneToken(node.scriptTag)); 786 new ScriptTag(cloneToken(node.scriptTag));
790 787
791 @override 788 @override
792 ShowCombinator visitShowCombinator(ShowCombinator node) => astFactory 789 ShowCombinator visitShowCombinator(ShowCombinator node) => new ShowCombinator(
793 .showCombinator(cloneToken(node.keyword), cloneNodeList(node.shownNames)); 790 cloneToken(node.keyword), cloneNodeList(node.shownNames));
794 791
795 @override 792 @override
796 SimpleFormalParameter visitSimpleFormalParameter( 793 SimpleFormalParameter visitSimpleFormalParameter(
797 SimpleFormalParameter node) => 794 SimpleFormalParameter node) =>
798 astFactory.simpleFormalParameter( 795 new SimpleFormalParameter(
799 cloneNode(node.documentationComment), 796 cloneNode(node.documentationComment),
800 cloneNodeList(node.metadata), 797 cloneNodeList(node.metadata),
801 cloneToken(node.keyword), 798 cloneToken(node.keyword),
802 cloneNode(node.type), 799 cloneNode(node.type),
803 cloneNode(node.identifier)); 800 cloneNode(node.identifier));
804 801
805 @override 802 @override
806 SimpleIdentifier visitSimpleIdentifier(SimpleIdentifier node) => 803 SimpleIdentifier visitSimpleIdentifier(SimpleIdentifier node) =>
807 astFactory.simpleIdentifier(cloneToken(node.token), 804 new SimpleIdentifier(cloneToken(node.token),
808 isDeclaration: node.inDeclarationContext()); 805 isDeclaration: node.inDeclarationContext());
809 806
810 @override 807 @override
811 SimpleStringLiteral visitSimpleStringLiteral(SimpleStringLiteral node) => 808 SimpleStringLiteral visitSimpleStringLiteral(SimpleStringLiteral node) =>
812 astFactory.simpleStringLiteral(cloneToken(node.literal), node.value); 809 new SimpleStringLiteral(cloneToken(node.literal), node.value);
813 810
814 @override 811 @override
815 StringInterpolation visitStringInterpolation(StringInterpolation node) => 812 StringInterpolation visitStringInterpolation(StringInterpolation node) =>
816 astFactory.stringInterpolation(cloneNodeList(node.elements)); 813 new StringInterpolation(cloneNodeList(node.elements));
817 814
818 @override 815 @override
819 SuperConstructorInvocation visitSuperConstructorInvocation( 816 SuperConstructorInvocation visitSuperConstructorInvocation(
820 SuperConstructorInvocation node) => 817 SuperConstructorInvocation node) =>
821 astFactory.superConstructorInvocation( 818 new SuperConstructorInvocation(
822 cloneToken(node.superKeyword), 819 cloneToken(node.superKeyword),
823 cloneToken(node.period), 820 cloneToken(node.period),
824 cloneNode(node.constructorName), 821 cloneNode(node.constructorName),
825 cloneNode(node.argumentList)); 822 cloneNode(node.argumentList));
826 823
827 @override 824 @override
828 SuperExpression visitSuperExpression(SuperExpression node) => 825 SuperExpression visitSuperExpression(SuperExpression node) =>
829 astFactory.superExpression(cloneToken(node.superKeyword)); 826 new SuperExpression(cloneToken(node.superKeyword));
830 827
831 @override 828 @override
832 SwitchCase visitSwitchCase(SwitchCase node) => astFactory.switchCase( 829 SwitchCase visitSwitchCase(SwitchCase node) => new SwitchCase(
833 cloneNodeList(node.labels), 830 cloneNodeList(node.labels),
834 cloneToken(node.keyword), 831 cloneToken(node.keyword),
835 cloneNode(node.expression), 832 cloneNode(node.expression),
836 cloneToken(node.colon), 833 cloneToken(node.colon),
837 cloneNodeList(node.statements)); 834 cloneNodeList(node.statements));
838 835
839 @override 836 @override
840 SwitchDefault visitSwitchDefault(SwitchDefault node) => 837 SwitchDefault visitSwitchDefault(SwitchDefault node) => new SwitchDefault(
841 astFactory.switchDefault( 838 cloneNodeList(node.labels),
842 cloneNodeList(node.labels), 839 cloneToken(node.keyword),
843 cloneToken(node.keyword), 840 cloneToken(node.colon),
844 cloneToken(node.colon), 841 cloneNodeList(node.statements));
845 cloneNodeList(node.statements));
846 842
847 @override 843 @override
848 SwitchStatement visitSwitchStatement(SwitchStatement node) => 844 SwitchStatement visitSwitchStatement(SwitchStatement node) =>
849 astFactory.switchStatement( 845 new SwitchStatement(
850 cloneToken(node.switchKeyword), 846 cloneToken(node.switchKeyword),
851 cloneToken(node.leftParenthesis), 847 cloneToken(node.leftParenthesis),
852 cloneNode(node.expression), 848 cloneNode(node.expression),
853 cloneToken(node.rightParenthesis), 849 cloneToken(node.rightParenthesis),
854 cloneToken(node.leftBracket), 850 cloneToken(node.leftBracket),
855 cloneNodeList(node.members), 851 cloneNodeList(node.members),
856 cloneToken(node.rightBracket)); 852 cloneToken(node.rightBracket));
857 853
858 @override 854 @override
859 SymbolLiteral visitSymbolLiteral(SymbolLiteral node) => 855 SymbolLiteral visitSymbolLiteral(SymbolLiteral node) => new SymbolLiteral(
860 astFactory.symbolLiteral( 856 cloneToken(node.poundSign), cloneTokenList(node.components));
861 cloneToken(node.poundSign), cloneTokenList(node.components));
862 857
863 @override 858 @override
864 ThisExpression visitThisExpression(ThisExpression node) => 859 ThisExpression visitThisExpression(ThisExpression node) =>
865 astFactory.thisExpression(cloneToken(node.thisKeyword)); 860 new ThisExpression(cloneToken(node.thisKeyword));
866 861
867 @override 862 @override
868 ThrowExpression visitThrowExpression(ThrowExpression node) => 863 ThrowExpression visitThrowExpression(ThrowExpression node) =>
869 astFactory.throwExpression( 864 new ThrowExpression(
870 cloneToken(node.throwKeyword), cloneNode(node.expression)); 865 cloneToken(node.throwKeyword), cloneNode(node.expression));
871 866
872 @override 867 @override
873 TopLevelVariableDeclaration visitTopLevelVariableDeclaration( 868 TopLevelVariableDeclaration visitTopLevelVariableDeclaration(
874 TopLevelVariableDeclaration node) => 869 TopLevelVariableDeclaration node) =>
875 astFactory.topLevelVariableDeclaration( 870 new TopLevelVariableDeclaration(
876 cloneNode(node.documentationComment), 871 cloneNode(node.documentationComment),
877 cloneNodeList(node.metadata), 872 cloneNodeList(node.metadata),
878 cloneNode(node.variables), 873 cloneNode(node.variables),
879 cloneToken(node.semicolon)); 874 cloneToken(node.semicolon));
880 875
881 @override 876 @override
882 TryStatement visitTryStatement(TryStatement node) => astFactory.tryStatement( 877 TryStatement visitTryStatement(TryStatement node) => new TryStatement(
883 cloneToken(node.tryKeyword), 878 cloneToken(node.tryKeyword),
884 cloneNode(node.body), 879 cloneNode(node.body),
885 cloneNodeList(node.catchClauses), 880 cloneNodeList(node.catchClauses),
886 cloneToken(node.finallyKeyword), 881 cloneToken(node.finallyKeyword),
887 cloneNode(node.finallyBlock)); 882 cloneNode(node.finallyBlock));
888 883
889 @override 884 @override
890 TypeArgumentList visitTypeArgumentList(TypeArgumentList node) => 885 TypeArgumentList visitTypeArgumentList(TypeArgumentList node) =>
891 astFactory.typeArgumentList(cloneToken(node.leftBracket), 886 new TypeArgumentList(cloneToken(node.leftBracket),
892 cloneNodeList(node.arguments), cloneToken(node.rightBracket)); 887 cloneNodeList(node.arguments), cloneToken(node.rightBracket));
893 888
894 @override 889 @override
895 TypeName visitTypeName(TypeName node) => 890 TypeName visitTypeName(TypeName node) =>
896 astFactory.typeName(cloneNode(node.name), cloneNode(node.typeArguments)); 891 new TypeName(cloneNode(node.name), cloneNode(node.typeArguments));
897 892
898 @override 893 @override
899 TypeParameter visitTypeParameter(TypeParameter node) => 894 TypeParameter visitTypeParameter(TypeParameter node) => new TypeParameter(
900 astFactory.typeParameter( 895 cloneNode(node.documentationComment),
901 cloneNode(node.documentationComment), 896 cloneNodeList(node.metadata),
902 cloneNodeList(node.metadata), 897 cloneNode(node.name),
903 cloneNode(node.name), 898 cloneToken(node.extendsKeyword),
904 cloneToken(node.extendsKeyword), 899 cloneNode(node.bound));
905 cloneNode(node.bound));
906 900
907 @override 901 @override
908 TypeParameterList visitTypeParameterList(TypeParameterList node) => 902 TypeParameterList visitTypeParameterList(TypeParameterList node) =>
909 astFactory.typeParameterList(cloneToken(node.leftBracket), 903 new TypeParameterList(cloneToken(node.leftBracket),
910 cloneNodeList(node.typeParameters), cloneToken(node.rightBracket)); 904 cloneNodeList(node.typeParameters), cloneToken(node.rightBracket));
911 905
912 @override 906 @override
913 VariableDeclaration visitVariableDeclaration(VariableDeclaration node) => 907 VariableDeclaration visitVariableDeclaration(VariableDeclaration node) =>
914 astFactory.variableDeclaration(cloneNode(node.name), 908 new VariableDeclaration(cloneNode(node.name), cloneToken(node.equals),
915 cloneToken(node.equals), cloneNode(node.initializer)); 909 cloneNode(node.initializer));
916 910
917 @override 911 @override
918 VariableDeclarationList visitVariableDeclarationList( 912 VariableDeclarationList visitVariableDeclarationList(
919 VariableDeclarationList node) => 913 VariableDeclarationList node) =>
920 astFactory.variableDeclarationList( 914 new VariableDeclarationList(
921 cloneNode(node.documentationComment), 915 cloneNode(node.documentationComment),
922 cloneNodeList(node.metadata), 916 cloneNodeList(node.metadata),
923 cloneToken(node.keyword), 917 cloneToken(node.keyword),
924 cloneNode(node.type), 918 cloneNode(node.type),
925 cloneNodeList(node.variables)); 919 cloneNodeList(node.variables));
926 920
927 @override 921 @override
928 VariableDeclarationStatement visitVariableDeclarationStatement( 922 VariableDeclarationStatement visitVariableDeclarationStatement(
929 VariableDeclarationStatement node) => 923 VariableDeclarationStatement node) =>
930 astFactory.variableDeclarationStatement( 924 new VariableDeclarationStatement(
931 cloneNode(node.variables), cloneToken(node.semicolon)); 925 cloneNode(node.variables), cloneToken(node.semicolon));
932 926
933 @override 927 @override
934 WhileStatement visitWhileStatement(WhileStatement node) => 928 WhileStatement visitWhileStatement(WhileStatement node) => new WhileStatement(
935 astFactory.whileStatement( 929 cloneToken(node.whileKeyword),
936 cloneToken(node.whileKeyword), 930 cloneToken(node.leftParenthesis),
937 cloneToken(node.leftParenthesis), 931 cloneNode(node.condition),
938 cloneNode(node.condition), 932 cloneToken(node.rightParenthesis),
939 cloneToken(node.rightParenthesis), 933 cloneNode(node.body));
940 cloneNode(node.body));
941 934
942 @override 935 @override
943 WithClause visitWithClause(WithClause node) => astFactory.withClause( 936 WithClause visitWithClause(WithClause node) => new WithClause(
944 cloneToken(node.withKeyword), cloneNodeList(node.mixinTypes)); 937 cloneToken(node.withKeyword), cloneNodeList(node.mixinTypes));
945 938
946 @override 939 @override
947 YieldStatement visitYieldStatement(YieldStatement node) => 940 YieldStatement visitYieldStatement(YieldStatement node) => new YieldStatement(
948 astFactory.yieldStatement( 941 cloneToken(node.yieldKeyword),
949 cloneToken(node.yieldKeyword), 942 cloneToken(node.star),
950 cloneToken(node.star), 943 cloneNode(node.expression),
951 cloneNode(node.expression), 944 cloneToken(node.semicolon));
952 cloneToken(node.semicolon));
953 945
954 /** 946 /**
955 * Clone all token starting from the given [token] up to a token that has 947 * Clone all token starting from the given [token] up to a token that has
956 * offset greater then [stopAfter], and put mapping from originals to clones 948 * offset greater then [stopAfter], and put mapping from originals to clones
957 * into [_clonedTokens]. 949 * into [_clonedTokens].
958 * 950 *
959 * We cannot clone tokens as we visit nodes because not every token is a part 951 * We cannot clone tokens as we visit nodes because not every token is a part
960 * of a node, E.g. commas in argument lists are not represented in AST. But 952 * of a node, E.g. commas in argument lists are not represented in AST. But
961 * we need to the sequence of tokens that is identical to the original one. 953 * we need to the sequence of tokens that is identical to the original one.
962 */ 954 */
(...skipping 1793 matching lines...) Expand 10 before | Expand all | Expand 10 after
2756 2748
2757 /** 2749 /**
2758 * Construct a new instance that will replace the [oldNode] with the [newNode] 2750 * Construct a new instance that will replace the [oldNode] with the [newNode]
2759 * in the process of cloning an existing AST structure. The [tokenMap] is a 2751 * in the process of cloning an existing AST structure. The [tokenMap] is a
2760 * mapping of old tokens to new tokens. 2752 * mapping of old tokens to new tokens.
2761 */ 2753 */
2762 IncrementalAstCloner(this._oldNode, this._newNode, this._tokenMap); 2754 IncrementalAstCloner(this._oldNode, this._newNode, this._tokenMap);
2763 2755
2764 @override 2756 @override
2765 AdjacentStrings visitAdjacentStrings(AdjacentStrings node) => 2757 AdjacentStrings visitAdjacentStrings(AdjacentStrings node) =>
2766 astFactory.adjacentStrings(_cloneNodeList(node.strings)); 2758 new AdjacentStrings(_cloneNodeList(node.strings));
2767 2759
2768 @override 2760 @override
2769 Annotation visitAnnotation(Annotation node) { 2761 Annotation visitAnnotation(Annotation node) {
2770 Annotation copy = astFactory.annotation( 2762 Annotation copy = new Annotation(
2771 _mapToken(node.atSign), 2763 _mapToken(node.atSign),
2772 _cloneNode(node.name), 2764 _cloneNode(node.name),
2773 _mapToken(node.period), 2765 _mapToken(node.period),
2774 _cloneNode(node.constructorName), 2766 _cloneNode(node.constructorName),
2775 _cloneNode(node.arguments)); 2767 _cloneNode(node.arguments));
2776 copy.element = node.element; 2768 copy.element = node.element;
2777 return copy; 2769 return copy;
2778 } 2770 }
2779 2771
2780 @override 2772 @override
2781 ArgumentList visitArgumentList(ArgumentList node) => astFactory.argumentList( 2773 ArgumentList visitArgumentList(ArgumentList node) => new ArgumentList(
2782 _mapToken(node.leftParenthesis), 2774 _mapToken(node.leftParenthesis),
2783 _cloneNodeList(node.arguments), 2775 _cloneNodeList(node.arguments),
2784 _mapToken(node.rightParenthesis)); 2776 _mapToken(node.rightParenthesis));
2785 2777
2786 @override 2778 @override
2787 AsExpression visitAsExpression(AsExpression node) { 2779 AsExpression visitAsExpression(AsExpression node) {
2788 AsExpression copy = astFactory.asExpression(_cloneNode(node.expression), 2780 AsExpression copy = new AsExpression(_cloneNode(node.expression),
2789 _mapToken(node.asOperator), _cloneNode(node.type)); 2781 _mapToken(node.asOperator), _cloneNode(node.type));
2790 copy.propagatedType = node.propagatedType; 2782 copy.propagatedType = node.propagatedType;
2791 copy.staticType = node.staticType; 2783 copy.staticType = node.staticType;
2792 return copy; 2784 return copy;
2793 } 2785 }
2794 2786
2795 @override 2787 @override
2796 AstNode visitAssertInitializer(AssertInitializer node) => 2788 AstNode visitAssertInitializer(AssertInitializer node) =>
2797 astFactory.assertInitializer( 2789 new AssertInitializer(
2798 _mapToken(node.assertKeyword), 2790 _mapToken(node.assertKeyword),
2799 _mapToken(node.leftParenthesis), 2791 _mapToken(node.leftParenthesis),
2800 _cloneNode(node.condition), 2792 _cloneNode(node.condition),
2801 _mapToken(node.comma), 2793 _mapToken(node.comma),
2802 _cloneNode(node.message), 2794 _cloneNode(node.message),
2803 _mapToken(node.rightParenthesis)); 2795 _mapToken(node.rightParenthesis));
2804 2796
2805 @override 2797 @override
2806 AstNode visitAssertStatement(AssertStatement node) => 2798 AstNode visitAssertStatement(AssertStatement node) => new AssertStatement(
2807 astFactory.assertStatement( 2799 _mapToken(node.assertKeyword),
2808 _mapToken(node.assertKeyword), 2800 _mapToken(node.leftParenthesis),
2809 _mapToken(node.leftParenthesis), 2801 _cloneNode(node.condition),
2810 _cloneNode(node.condition), 2802 _mapToken(node.comma),
2811 _mapToken(node.comma), 2803 _cloneNode(node.message),
2812 _cloneNode(node.message), 2804 _mapToken(node.rightParenthesis),
2813 _mapToken(node.rightParenthesis), 2805 _mapToken(node.semicolon));
2814 _mapToken(node.semicolon));
2815 2806
2816 @override 2807 @override
2817 AssignmentExpression visitAssignmentExpression(AssignmentExpression node) { 2808 AssignmentExpression visitAssignmentExpression(AssignmentExpression node) {
2818 AssignmentExpression copy = astFactory.assignmentExpression( 2809 AssignmentExpression copy = new AssignmentExpression(
2819 _cloneNode(node.leftHandSide), 2810 _cloneNode(node.leftHandSide),
2820 _mapToken(node.operator), 2811 _mapToken(node.operator),
2821 _cloneNode(node.rightHandSide)); 2812 _cloneNode(node.rightHandSide));
2822 copy.propagatedElement = node.propagatedElement; 2813 copy.propagatedElement = node.propagatedElement;
2823 copy.propagatedType = node.propagatedType; 2814 copy.propagatedType = node.propagatedType;
2824 copy.staticElement = node.staticElement; 2815 copy.staticElement = node.staticElement;
2825 copy.staticType = node.staticType; 2816 copy.staticType = node.staticType;
2826 return copy; 2817 return copy;
2827 } 2818 }
2828 2819
2829 @override 2820 @override
2830 AwaitExpression visitAwaitExpression(AwaitExpression node) => 2821 AwaitExpression visitAwaitExpression(AwaitExpression node) =>
2831 astFactory.awaitExpression( 2822 new AwaitExpression(
2832 _mapToken(node.awaitKeyword), _cloneNode(node.expression)); 2823 _mapToken(node.awaitKeyword), _cloneNode(node.expression));
2833 2824
2834 @override 2825 @override
2835 BinaryExpression visitBinaryExpression(BinaryExpression node) { 2826 BinaryExpression visitBinaryExpression(BinaryExpression node) {
2836 BinaryExpression copy = astFactory.binaryExpression( 2827 BinaryExpression copy = new BinaryExpression(_cloneNode(node.leftOperand),
2837 _cloneNode(node.leftOperand), 2828 _mapToken(node.operator), _cloneNode(node.rightOperand));
2838 _mapToken(node.operator),
2839 _cloneNode(node.rightOperand));
2840 copy.propagatedElement = node.propagatedElement; 2829 copy.propagatedElement = node.propagatedElement;
2841 copy.propagatedType = node.propagatedType; 2830 copy.propagatedType = node.propagatedType;
2842 copy.staticElement = node.staticElement; 2831 copy.staticElement = node.staticElement;
2843 copy.staticType = node.staticType; 2832 copy.staticType = node.staticType;
2844 return copy; 2833 return copy;
2845 } 2834 }
2846 2835
2847 @override 2836 @override
2848 Block visitBlock(Block node) => astFactory.block(_mapToken(node.leftBracket), 2837 Block visitBlock(Block node) => new Block(_mapToken(node.leftBracket),
2849 _cloneNodeList(node.statements), _mapToken(node.rightBracket)); 2838 _cloneNodeList(node.statements), _mapToken(node.rightBracket));
2850 2839
2851 @override 2840 @override
2852 BlockFunctionBody visitBlockFunctionBody(BlockFunctionBody node) => 2841 BlockFunctionBody visitBlockFunctionBody(BlockFunctionBody node) =>
2853 astFactory.blockFunctionBody(_mapToken(node.keyword), 2842 new BlockFunctionBody(_mapToken(node.keyword), _mapToken(node.star),
2854 _mapToken(node.star), _cloneNode(node.block)); 2843 _cloneNode(node.block));
2855 2844
2856 @override 2845 @override
2857 BooleanLiteral visitBooleanLiteral(BooleanLiteral node) { 2846 BooleanLiteral visitBooleanLiteral(BooleanLiteral node) {
2858 BooleanLiteral copy = 2847 BooleanLiteral copy =
2859 astFactory.booleanLiteral(_mapToken(node.literal), node.value); 2848 new BooleanLiteral(_mapToken(node.literal), node.value);
2860 copy.propagatedType = node.propagatedType; 2849 copy.propagatedType = node.propagatedType;
2861 copy.staticType = node.staticType; 2850 copy.staticType = node.staticType;
2862 return copy; 2851 return copy;
2863 } 2852 }
2864 2853
2865 @override 2854 @override
2866 BreakStatement visitBreakStatement(BreakStatement node) => 2855 BreakStatement visitBreakStatement(BreakStatement node) => new BreakStatement(
2867 astFactory.breakStatement(_mapToken(node.breakKeyword), 2856 _mapToken(node.breakKeyword),
2868 _cloneNode(node.label), _mapToken(node.semicolon)); 2857 _cloneNode(node.label),
2858 _mapToken(node.semicolon));
2869 2859
2870 @override 2860 @override
2871 CascadeExpression visitCascadeExpression(CascadeExpression node) { 2861 CascadeExpression visitCascadeExpression(CascadeExpression node) {
2872 CascadeExpression copy = astFactory.cascadeExpression( 2862 CascadeExpression copy = new CascadeExpression(
2873 _cloneNode(node.target), _cloneNodeList(node.cascadeSections)); 2863 _cloneNode(node.target), _cloneNodeList(node.cascadeSections));
2874 copy.propagatedType = node.propagatedType; 2864 copy.propagatedType = node.propagatedType;
2875 copy.staticType = node.staticType; 2865 copy.staticType = node.staticType;
2876 return copy; 2866 return copy;
2877 } 2867 }
2878 2868
2879 @override 2869 @override
2880 CatchClause visitCatchClause(CatchClause node) => astFactory.catchClause( 2870 CatchClause visitCatchClause(CatchClause node) => new CatchClause(
2881 _mapToken(node.onKeyword), 2871 _mapToken(node.onKeyword),
2882 _cloneNode(node.exceptionType), 2872 _cloneNode(node.exceptionType),
2883 _mapToken(node.catchKeyword), 2873 _mapToken(node.catchKeyword),
2884 _mapToken(node.leftParenthesis), 2874 _mapToken(node.leftParenthesis),
2885 _cloneNode(node.exceptionParameter), 2875 _cloneNode(node.exceptionParameter),
2886 _mapToken(node.comma), 2876 _mapToken(node.comma),
2887 _cloneNode(node.stackTraceParameter), 2877 _cloneNode(node.stackTraceParameter),
2888 _mapToken(node.rightParenthesis), 2878 _mapToken(node.rightParenthesis),
2889 _cloneNode(node.body)); 2879 _cloneNode(node.body));
2890 2880
2891 @override 2881 @override
2892 ClassDeclaration visitClassDeclaration(ClassDeclaration node) { 2882 ClassDeclaration visitClassDeclaration(ClassDeclaration node) {
2893 ClassDeclaration copy = astFactory.classDeclaration( 2883 ClassDeclaration copy = new ClassDeclaration(
2894 _cloneNode(node.documentationComment), 2884 _cloneNode(node.documentationComment),
2895 _cloneNodeList(node.metadata), 2885 _cloneNodeList(node.metadata),
2896 _mapToken(node.abstractKeyword), 2886 _mapToken(node.abstractKeyword),
2897 _mapToken(node.classKeyword), 2887 _mapToken(node.classKeyword),
2898 _cloneNode(node.name), 2888 _cloneNode(node.name),
2899 _cloneNode(node.typeParameters), 2889 _cloneNode(node.typeParameters),
2900 _cloneNode(node.extendsClause), 2890 _cloneNode(node.extendsClause),
2901 _cloneNode(node.withClause), 2891 _cloneNode(node.withClause),
2902 _cloneNode(node.implementsClause), 2892 _cloneNode(node.implementsClause),
2903 _mapToken(node.leftBracket), 2893 _mapToken(node.leftBracket),
2904 _cloneNodeList(node.members), 2894 _cloneNodeList(node.members),
2905 _mapToken(node.rightBracket)); 2895 _mapToken(node.rightBracket));
2906 copy.nativeClause = _cloneNode(node.nativeClause); 2896 copy.nativeClause = _cloneNode(node.nativeClause);
2907 return copy; 2897 return copy;
2908 } 2898 }
2909 2899
2910 @override 2900 @override
2911 ClassTypeAlias visitClassTypeAlias(ClassTypeAlias node) => 2901 ClassTypeAlias visitClassTypeAlias(ClassTypeAlias node) => new ClassTypeAlias(
2912 astFactory.classTypeAlias( 2902 _cloneNode(node.documentationComment),
2913 _cloneNode(node.documentationComment), 2903 _cloneNodeList(node.metadata),
2914 _cloneNodeList(node.metadata), 2904 _mapToken(node.typedefKeyword),
2915 _mapToken(node.typedefKeyword), 2905 _cloneNode(node.name),
2916 _cloneNode(node.name), 2906 _cloneNode(node.typeParameters),
2917 _cloneNode(node.typeParameters), 2907 _mapToken(node.equals),
2918 _mapToken(node.equals), 2908 _mapToken(node.abstractKeyword),
2919 _mapToken(node.abstractKeyword), 2909 _cloneNode(node.superclass),
2920 _cloneNode(node.superclass), 2910 _cloneNode(node.withClause),
2921 _cloneNode(node.withClause), 2911 _cloneNode(node.implementsClause),
2922 _cloneNode(node.implementsClause), 2912 _mapToken(node.semicolon));
2923 _mapToken(node.semicolon));
2924 2913
2925 @override 2914 @override
2926 Comment visitComment(Comment node) { 2915 Comment visitComment(Comment node) {
2927 if (node.isDocumentation) { 2916 if (node.isDocumentation) {
2928 return astFactory.documentationComment( 2917 return Comment.createDocumentationCommentWithReferences(
2929 _mapTokens(node.tokens), _cloneNodeList(node.references)); 2918 _mapTokens(node.tokens), _cloneNodeList(node.references));
2930 } else if (node.isBlock) { 2919 } else if (node.isBlock) {
2931 return astFactory.blockComment(_mapTokens(node.tokens)); 2920 return Comment.createBlockComment(_mapTokens(node.tokens));
2932 } 2921 }
2933 return astFactory.endOfLineComment(_mapTokens(node.tokens)); 2922 return Comment.createEndOfLineComment(_mapTokens(node.tokens));
2934 } 2923 }
2935 2924
2936 @override 2925 @override
2937 CommentReference visitCommentReference(CommentReference node) => 2926 CommentReference visitCommentReference(CommentReference node) =>
2938 astFactory.commentReference( 2927 new CommentReference(
2939 _mapToken(node.newKeyword), _cloneNode(node.identifier)); 2928 _mapToken(node.newKeyword), _cloneNode(node.identifier));
2940 2929
2941 @override 2930 @override
2942 CompilationUnit visitCompilationUnit(CompilationUnit node) { 2931 CompilationUnit visitCompilationUnit(CompilationUnit node) {
2943 CompilationUnit copy = astFactory.compilationUnit( 2932 CompilationUnit copy = new CompilationUnit(
2944 _mapToken(node.beginToken), 2933 _mapToken(node.beginToken),
2945 _cloneNode(node.scriptTag), 2934 _cloneNode(node.scriptTag),
2946 _cloneNodeList(node.directives), 2935 _cloneNodeList(node.directives),
2947 _cloneNodeList(node.declarations), 2936 _cloneNodeList(node.declarations),
2948 _mapToken(node.endToken)); 2937 _mapToken(node.endToken));
2949 copy.lineInfo = node.lineInfo; 2938 copy.lineInfo = node.lineInfo;
2950 copy.element = node.element; 2939 copy.element = node.element;
2951 return copy; 2940 return copy;
2952 } 2941 }
2953 2942
2954 @override 2943 @override
2955 ConditionalExpression visitConditionalExpression(ConditionalExpression node) { 2944 ConditionalExpression visitConditionalExpression(ConditionalExpression node) {
2956 ConditionalExpression copy = astFactory.conditionalExpression( 2945 ConditionalExpression copy = new ConditionalExpression(
2957 _cloneNode(node.condition), 2946 _cloneNode(node.condition),
2958 _mapToken(node.question), 2947 _mapToken(node.question),
2959 _cloneNode(node.thenExpression), 2948 _cloneNode(node.thenExpression),
2960 _mapToken(node.colon), 2949 _mapToken(node.colon),
2961 _cloneNode(node.elseExpression)); 2950 _cloneNode(node.elseExpression));
2962 copy.propagatedType = node.propagatedType; 2951 copy.propagatedType = node.propagatedType;
2963 copy.staticType = node.staticType; 2952 copy.staticType = node.staticType;
2964 return copy; 2953 return copy;
2965 } 2954 }
2966 2955
2967 @override 2956 @override
2968 Configuration visitConfiguration(Configuration node) => 2957 Configuration visitConfiguration(Configuration node) => new Configuration(
2969 astFactory.configuration( 2958 _mapToken(node.ifKeyword),
2970 _mapToken(node.ifKeyword), 2959 _mapToken(node.leftParenthesis),
2971 _mapToken(node.leftParenthesis), 2960 _cloneNode(node.name),
2972 _cloneNode(node.name), 2961 _mapToken(node.equalToken),
2973 _mapToken(node.equalToken), 2962 _cloneNode(node.value),
2974 _cloneNode(node.value), 2963 _mapToken(node.rightParenthesis),
2975 _mapToken(node.rightParenthesis), 2964 _cloneNode(node.uri));
2976 _cloneNode(node.uri));
2977 2965
2978 @override 2966 @override
2979 ConstructorDeclaration visitConstructorDeclaration( 2967 ConstructorDeclaration visitConstructorDeclaration(
2980 ConstructorDeclaration node) { 2968 ConstructorDeclaration node) {
2981 ConstructorDeclaration copy = astFactory.constructorDeclaration( 2969 ConstructorDeclaration copy = new ConstructorDeclaration(
2982 _cloneNode(node.documentationComment), 2970 _cloneNode(node.documentationComment),
2983 _cloneNodeList(node.metadata), 2971 _cloneNodeList(node.metadata),
2984 _mapToken(node.externalKeyword), 2972 _mapToken(node.externalKeyword),
2985 _mapToken(node.constKeyword), 2973 _mapToken(node.constKeyword),
2986 _mapToken(node.factoryKeyword), 2974 _mapToken(node.factoryKeyword),
2987 _cloneNode(node.returnType), 2975 _cloneNode(node.returnType),
2988 _mapToken(node.period), 2976 _mapToken(node.period),
2989 _cloneNode(node.name), 2977 _cloneNode(node.name),
2990 _cloneNode(node.parameters), 2978 _cloneNode(node.parameters),
2991 _mapToken(node.separator), 2979 _mapToken(node.separator),
2992 _cloneNodeList(node.initializers), 2980 _cloneNodeList(node.initializers),
2993 _cloneNode(node.redirectedConstructor), 2981 _cloneNode(node.redirectedConstructor),
2994 _cloneNode(node.body)); 2982 _cloneNode(node.body));
2995 copy.element = node.element; 2983 copy.element = node.element;
2996 return copy; 2984 return copy;
2997 } 2985 }
2998 2986
2999 @override 2987 @override
3000 ConstructorFieldInitializer visitConstructorFieldInitializer( 2988 ConstructorFieldInitializer visitConstructorFieldInitializer(
3001 ConstructorFieldInitializer node) => 2989 ConstructorFieldInitializer node) =>
3002 astFactory.constructorFieldInitializer( 2990 new ConstructorFieldInitializer(
3003 _mapToken(node.thisKeyword), 2991 _mapToken(node.thisKeyword),
3004 _mapToken(node.period), 2992 _mapToken(node.period),
3005 _cloneNode(node.fieldName), 2993 _cloneNode(node.fieldName),
3006 _mapToken(node.equals), 2994 _mapToken(node.equals),
3007 _cloneNode(node.expression)); 2995 _cloneNode(node.expression));
3008 2996
3009 @override 2997 @override
3010 ConstructorName visitConstructorName(ConstructorName node) { 2998 ConstructorName visitConstructorName(ConstructorName node) {
3011 ConstructorName copy = astFactory.constructorName( 2999 ConstructorName copy = new ConstructorName(
3012 _cloneNode(node.type), _mapToken(node.period), _cloneNode(node.name)); 3000 _cloneNode(node.type), _mapToken(node.period), _cloneNode(node.name));
3013 copy.staticElement = node.staticElement; 3001 copy.staticElement = node.staticElement;
3014 return copy; 3002 return copy;
3015 } 3003 }
3016 3004
3017 @override 3005 @override
3018 ContinueStatement visitContinueStatement(ContinueStatement node) => 3006 ContinueStatement visitContinueStatement(ContinueStatement node) =>
3019 astFactory.continueStatement(_mapToken(node.continueKeyword), 3007 new ContinueStatement(_mapToken(node.continueKeyword),
3020 _cloneNode(node.label), _mapToken(node.semicolon)); 3008 _cloneNode(node.label), _mapToken(node.semicolon));
3021 3009
3022 @override 3010 @override
3023 DeclaredIdentifier visitDeclaredIdentifier(DeclaredIdentifier node) => 3011 DeclaredIdentifier visitDeclaredIdentifier(DeclaredIdentifier node) =>
3024 astFactory.declaredIdentifier( 3012 new DeclaredIdentifier(
3025 _cloneNode(node.documentationComment), 3013 _cloneNode(node.documentationComment),
3026 _cloneNodeList(node.metadata), 3014 _cloneNodeList(node.metadata),
3027 _mapToken(node.keyword), 3015 _mapToken(node.keyword),
3028 _cloneNode(node.type), 3016 _cloneNode(node.type),
3029 _cloneNode(node.identifier)); 3017 _cloneNode(node.identifier));
3030 3018
3031 @override 3019 @override
3032 DefaultFormalParameter visitDefaultFormalParameter( 3020 DefaultFormalParameter visitDefaultFormalParameter(
3033 DefaultFormalParameter node) => 3021 DefaultFormalParameter node) =>
3034 astFactory.defaultFormalParameter(_cloneNode(node.parameter), node.kind, 3022 new DefaultFormalParameter(_cloneNode(node.parameter), node.kind,
3035 _mapToken(node.separator), _cloneNode(node.defaultValue)); 3023 _mapToken(node.separator), _cloneNode(node.defaultValue));
3036 3024
3037 @override 3025 @override
3038 DoStatement visitDoStatement(DoStatement node) => astFactory.doStatement( 3026 DoStatement visitDoStatement(DoStatement node) => new DoStatement(
3039 _mapToken(node.doKeyword), 3027 _mapToken(node.doKeyword),
3040 _cloneNode(node.body), 3028 _cloneNode(node.body),
3041 _mapToken(node.whileKeyword), 3029 _mapToken(node.whileKeyword),
3042 _mapToken(node.leftParenthesis), 3030 _mapToken(node.leftParenthesis),
3043 _cloneNode(node.condition), 3031 _cloneNode(node.condition),
3044 _mapToken(node.rightParenthesis), 3032 _mapToken(node.rightParenthesis),
3045 _mapToken(node.semicolon)); 3033 _mapToken(node.semicolon));
3046 3034
3047 @override 3035 @override
3048 DottedName visitDottedName(DottedName node) => 3036 DottedName visitDottedName(DottedName node) =>
3049 astFactory.dottedName(_cloneNodeList(node.components)); 3037 new DottedName(_cloneNodeList(node.components));
3050 3038
3051 @override 3039 @override
3052 DoubleLiteral visitDoubleLiteral(DoubleLiteral node) { 3040 DoubleLiteral visitDoubleLiteral(DoubleLiteral node) {
3053 DoubleLiteral copy = 3041 DoubleLiteral copy = new DoubleLiteral(_mapToken(node.literal), node.value);
3054 astFactory.doubleLiteral(_mapToken(node.literal), node.value);
3055 copy.propagatedType = node.propagatedType; 3042 copy.propagatedType = node.propagatedType;
3056 copy.staticType = node.staticType; 3043 copy.staticType = node.staticType;
3057 return copy; 3044 return copy;
3058 } 3045 }
3059 3046
3060 @override 3047 @override
3061 EmptyFunctionBody visitEmptyFunctionBody(EmptyFunctionBody node) => 3048 EmptyFunctionBody visitEmptyFunctionBody(EmptyFunctionBody node) =>
3062 astFactory.emptyFunctionBody(_mapToken(node.semicolon)); 3049 new EmptyFunctionBody(_mapToken(node.semicolon));
3063 3050
3064 @override 3051 @override
3065 EmptyStatement visitEmptyStatement(EmptyStatement node) => 3052 EmptyStatement visitEmptyStatement(EmptyStatement node) =>
3066 astFactory.emptyStatement(_mapToken(node.semicolon)); 3053 new EmptyStatement(_mapToken(node.semicolon));
3067 3054
3068 @override 3055 @override
3069 AstNode visitEnumConstantDeclaration(EnumConstantDeclaration node) => 3056 AstNode visitEnumConstantDeclaration(EnumConstantDeclaration node) =>
3070 astFactory.enumConstantDeclaration(_cloneNode(node.documentationComment), 3057 new EnumConstantDeclaration(_cloneNode(node.documentationComment),
3071 _cloneNodeList(node.metadata), _cloneNode(node.name)); 3058 _cloneNodeList(node.metadata), _cloneNode(node.name));
3072 3059
3073 @override 3060 @override
3074 AstNode visitEnumDeclaration(EnumDeclaration node) => 3061 AstNode visitEnumDeclaration(EnumDeclaration node) => new EnumDeclaration(
3075 astFactory.enumDeclaration( 3062 _cloneNode(node.documentationComment),
3076 _cloneNode(node.documentationComment), 3063 _cloneNodeList(node.metadata),
3077 _cloneNodeList(node.metadata), 3064 _mapToken(node.enumKeyword),
3078 _mapToken(node.enumKeyword), 3065 _cloneNode(node.name),
3079 _cloneNode(node.name), 3066 _mapToken(node.leftBracket),
3080 _mapToken(node.leftBracket), 3067 _cloneNodeList(node.constants),
3081 _cloneNodeList(node.constants), 3068 _mapToken(node.rightBracket));
3082 _mapToken(node.rightBracket));
3083 3069
3084 @override 3070 @override
3085 ExportDirective visitExportDirective(ExportDirective node) { 3071 ExportDirective visitExportDirective(ExportDirective node) {
3086 ExportDirective copy = astFactory.exportDirective( 3072 ExportDirective copy = new ExportDirective(
3087 _cloneNode(node.documentationComment), 3073 _cloneNode(node.documentationComment),
3088 _cloneNodeList(node.metadata), 3074 _cloneNodeList(node.metadata),
3089 _mapToken(node.keyword), 3075 _mapToken(node.keyword),
3090 _cloneNode(node.uri), 3076 _cloneNode(node.uri),
3091 _cloneNodeList(node.configurations), 3077 _cloneNodeList(node.configurations),
3092 _cloneNodeList(node.combinators), 3078 _cloneNodeList(node.combinators),
3093 _mapToken(node.semicolon)); 3079 _mapToken(node.semicolon));
3094 copy.element = node.element; 3080 copy.element = node.element;
3095 return copy; 3081 return copy;
3096 } 3082 }
3097 3083
3098 @override 3084 @override
3099 ExpressionFunctionBody visitExpressionFunctionBody( 3085 ExpressionFunctionBody visitExpressionFunctionBody(
3100 ExpressionFunctionBody node) => 3086 ExpressionFunctionBody node) =>
3101 astFactory.expressionFunctionBody( 3087 new ExpressionFunctionBody(
3102 _mapToken(node.keyword), 3088 _mapToken(node.keyword),
3103 _mapToken(node.functionDefinition), 3089 _mapToken(node.functionDefinition),
3104 _cloneNode(node.expression), 3090 _cloneNode(node.expression),
3105 _mapToken(node.semicolon)); 3091 _mapToken(node.semicolon));
3106 3092
3107 @override 3093 @override
3108 ExpressionStatement visitExpressionStatement(ExpressionStatement node) => 3094 ExpressionStatement visitExpressionStatement(ExpressionStatement node) =>
3109 astFactory.expressionStatement( 3095 new ExpressionStatement(
3110 _cloneNode(node.expression), _mapToken(node.semicolon)); 3096 _cloneNode(node.expression), _mapToken(node.semicolon));
3111 3097
3112 @override 3098 @override
3113 ExtendsClause visitExtendsClause(ExtendsClause node) => 3099 ExtendsClause visitExtendsClause(ExtendsClause node) => new ExtendsClause(
3114 astFactory.extendsClause( 3100 _mapToken(node.extendsKeyword), _cloneNode(node.superclass));
3115 _mapToken(node.extendsKeyword), _cloneNode(node.superclass));
3116 3101
3117 @override 3102 @override
3118 FieldDeclaration visitFieldDeclaration(FieldDeclaration node) => 3103 FieldDeclaration visitFieldDeclaration(FieldDeclaration node) =>
3119 astFactory.fieldDeclaration( 3104 new FieldDeclaration(
3120 _cloneNode(node.documentationComment), 3105 _cloneNode(node.documentationComment),
3121 _cloneNodeList(node.metadata), 3106 _cloneNodeList(node.metadata),
3122 _mapToken(node.staticKeyword), 3107 _mapToken(node.staticKeyword),
3123 _cloneNode(node.fields), 3108 _cloneNode(node.fields),
3124 _mapToken(node.semicolon)); 3109 _mapToken(node.semicolon));
3125 3110
3126 @override 3111 @override
3127 FieldFormalParameter visitFieldFormalParameter(FieldFormalParameter node) => 3112 FieldFormalParameter visitFieldFormalParameter(FieldFormalParameter node) =>
3128 astFactory.fieldFormalParameter( 3113 new FieldFormalParameter(
3129 _cloneNode(node.documentationComment), 3114 _cloneNode(node.documentationComment),
3130 _cloneNodeList(node.metadata), 3115 _cloneNodeList(node.metadata),
3131 _mapToken(node.keyword), 3116 _mapToken(node.keyword),
3132 _cloneNode(node.type), 3117 _cloneNode(node.type),
3133 _mapToken(node.thisKeyword), 3118 _mapToken(node.thisKeyword),
3134 _mapToken(node.period), 3119 _mapToken(node.period),
3135 _cloneNode(node.identifier), 3120 _cloneNode(node.identifier),
3136 _cloneNode(node.typeParameters), 3121 _cloneNode(node.typeParameters),
3137 _cloneNode(node.parameters)); 3122 _cloneNode(node.parameters));
3138 3123
3139 @override 3124 @override
3140 ForEachStatement visitForEachStatement(ForEachStatement node) { 3125 ForEachStatement visitForEachStatement(ForEachStatement node) {
3141 DeclaredIdentifier loopVariable = node.loopVariable; 3126 DeclaredIdentifier loopVariable = node.loopVariable;
3142 if (loopVariable == null) { 3127 if (loopVariable == null) {
3143 return astFactory.forEachStatementWithReference( 3128 return new ForEachStatement.withReference(
3144 _mapToken(node.awaitKeyword), 3129 _mapToken(node.awaitKeyword),
3145 _mapToken(node.forKeyword), 3130 _mapToken(node.forKeyword),
3146 _mapToken(node.leftParenthesis), 3131 _mapToken(node.leftParenthesis),
3147 _cloneNode(node.identifier), 3132 _cloneNode(node.identifier),
3148 _mapToken(node.inKeyword), 3133 _mapToken(node.inKeyword),
3149 _cloneNode(node.iterable), 3134 _cloneNode(node.iterable),
3150 _mapToken(node.rightParenthesis), 3135 _mapToken(node.rightParenthesis),
3151 _cloneNode(node.body)); 3136 _cloneNode(node.body));
3152 } 3137 }
3153 return astFactory.forEachStatementWithDeclaration( 3138 return new ForEachStatement.withDeclaration(
3154 _mapToken(node.awaitKeyword), 3139 _mapToken(node.awaitKeyword),
3155 _mapToken(node.forKeyword), 3140 _mapToken(node.forKeyword),
3156 _mapToken(node.leftParenthesis), 3141 _mapToken(node.leftParenthesis),
3157 _cloneNode(loopVariable), 3142 _cloneNode(loopVariable),
3158 _mapToken(node.inKeyword), 3143 _mapToken(node.inKeyword),
3159 _cloneNode(node.iterable), 3144 _cloneNode(node.iterable),
3160 _mapToken(node.rightParenthesis), 3145 _mapToken(node.rightParenthesis),
3161 _cloneNode(node.body)); 3146 _cloneNode(node.body));
3162 } 3147 }
3163 3148
3164 @override 3149 @override
3165 FormalParameterList visitFormalParameterList(FormalParameterList node) => 3150 FormalParameterList visitFormalParameterList(FormalParameterList node) =>
3166 astFactory.formalParameterList( 3151 new FormalParameterList(
3167 _mapToken(node.leftParenthesis), 3152 _mapToken(node.leftParenthesis),
3168 _cloneNodeList(node.parameters), 3153 _cloneNodeList(node.parameters),
3169 _mapToken(node.leftDelimiter), 3154 _mapToken(node.leftDelimiter),
3170 _mapToken(node.rightDelimiter), 3155 _mapToken(node.rightDelimiter),
3171 _mapToken(node.rightParenthesis)); 3156 _mapToken(node.rightParenthesis));
3172 3157
3173 @override 3158 @override
3174 ForStatement visitForStatement(ForStatement node) => astFactory.forStatement( 3159 ForStatement visitForStatement(ForStatement node) => new ForStatement(
3175 _mapToken(node.forKeyword), 3160 _mapToken(node.forKeyword),
3176 _mapToken(node.leftParenthesis), 3161 _mapToken(node.leftParenthesis),
3177 _cloneNode(node.variables), 3162 _cloneNode(node.variables),
3178 _cloneNode(node.initialization), 3163 _cloneNode(node.initialization),
3179 _mapToken(node.leftSeparator), 3164 _mapToken(node.leftSeparator),
3180 _cloneNode(node.condition), 3165 _cloneNode(node.condition),
3181 _mapToken(node.rightSeparator), 3166 _mapToken(node.rightSeparator),
3182 _cloneNodeList(node.updaters), 3167 _cloneNodeList(node.updaters),
3183 _mapToken(node.rightParenthesis), 3168 _mapToken(node.rightParenthesis),
3184 _cloneNode(node.body)); 3169 _cloneNode(node.body));
3185 3170
3186 @override 3171 @override
3187 FunctionDeclaration visitFunctionDeclaration(FunctionDeclaration node) => 3172 FunctionDeclaration visitFunctionDeclaration(FunctionDeclaration node) =>
3188 astFactory.functionDeclaration( 3173 new FunctionDeclaration(
3189 _cloneNode(node.documentationComment), 3174 _cloneNode(node.documentationComment),
3190 _cloneNodeList(node.metadata), 3175 _cloneNodeList(node.metadata),
3191 _mapToken(node.externalKeyword), 3176 _mapToken(node.externalKeyword),
3192 _cloneNode(node.returnType), 3177 _cloneNode(node.returnType),
3193 _mapToken(node.propertyKeyword), 3178 _mapToken(node.propertyKeyword),
3194 _cloneNode(node.name), 3179 _cloneNode(node.name),
3195 _cloneNode(node.functionExpression)); 3180 _cloneNode(node.functionExpression));
3196 3181
3197 @override 3182 @override
3198 FunctionDeclarationStatement visitFunctionDeclarationStatement( 3183 FunctionDeclarationStatement visitFunctionDeclarationStatement(
3199 FunctionDeclarationStatement node) => 3184 FunctionDeclarationStatement node) =>
3200 astFactory 3185 new FunctionDeclarationStatement(_cloneNode(node.functionDeclaration));
3201 .functionDeclarationStatement(_cloneNode(node.functionDeclaration));
3202 3186
3203 @override 3187 @override
3204 FunctionExpression visitFunctionExpression(FunctionExpression node) { 3188 FunctionExpression visitFunctionExpression(FunctionExpression node) {
3205 FunctionExpression copy = astFactory.functionExpression( 3189 FunctionExpression copy = new FunctionExpression(
3206 _cloneNode(node.typeParameters), 3190 _cloneNode(node.typeParameters),
3207 _cloneNode(node.parameters), 3191 _cloneNode(node.parameters),
3208 _cloneNode(node.body)); 3192 _cloneNode(node.body));
3209 copy.element = node.element; 3193 copy.element = node.element;
3210 copy.propagatedType = node.propagatedType; 3194 copy.propagatedType = node.propagatedType;
3211 copy.staticType = node.staticType; 3195 copy.staticType = node.staticType;
3212 return copy; 3196 return copy;
3213 } 3197 }
3214 3198
3215 @override 3199 @override
3216 FunctionExpressionInvocation visitFunctionExpressionInvocation( 3200 FunctionExpressionInvocation visitFunctionExpressionInvocation(
3217 FunctionExpressionInvocation node) { 3201 FunctionExpressionInvocation node) {
3218 FunctionExpressionInvocation copy = astFactory.functionExpressionInvocation( 3202 FunctionExpressionInvocation copy = new FunctionExpressionInvocation(
3219 _cloneNode(node.function), 3203 _cloneNode(node.function),
3220 _cloneNode(node.typeArguments), 3204 _cloneNode(node.typeArguments),
3221 _cloneNode(node.argumentList)); 3205 _cloneNode(node.argumentList));
3222 copy.propagatedElement = node.propagatedElement; 3206 copy.propagatedElement = node.propagatedElement;
3223 copy.propagatedType = node.propagatedType; 3207 copy.propagatedType = node.propagatedType;
3224 copy.staticElement = node.staticElement; 3208 copy.staticElement = node.staticElement;
3225 copy.staticType = node.staticType; 3209 copy.staticType = node.staticType;
3226 return copy; 3210 return copy;
3227 } 3211 }
3228 3212
3229 @override 3213 @override
3230 FunctionTypeAlias visitFunctionTypeAlias(FunctionTypeAlias node) => 3214 FunctionTypeAlias visitFunctionTypeAlias(FunctionTypeAlias node) =>
3231 astFactory.functionTypeAlias( 3215 new FunctionTypeAlias(
3232 _cloneNode(node.documentationComment), 3216 _cloneNode(node.documentationComment),
3233 _cloneNodeList(node.metadata), 3217 _cloneNodeList(node.metadata),
3234 _mapToken(node.typedefKeyword), 3218 _mapToken(node.typedefKeyword),
3235 _cloneNode(node.returnType), 3219 _cloneNode(node.returnType),
3236 _cloneNode(node.name), 3220 _cloneNode(node.name),
3237 _cloneNode(node.typeParameters), 3221 _cloneNode(node.typeParameters),
3238 _cloneNode(node.parameters), 3222 _cloneNode(node.parameters),
3239 _mapToken(node.semicolon)); 3223 _mapToken(node.semicolon));
3240 3224
3241 @override 3225 @override
3242 FunctionTypedFormalParameter visitFunctionTypedFormalParameter( 3226 FunctionTypedFormalParameter visitFunctionTypedFormalParameter(
3243 FunctionTypedFormalParameter node) => 3227 FunctionTypedFormalParameter node) =>
3244 astFactory.functionTypedFormalParameter( 3228 new FunctionTypedFormalParameter(
3245 _cloneNode(node.documentationComment), 3229 _cloneNode(node.documentationComment),
3246 _cloneNodeList(node.metadata), 3230 _cloneNodeList(node.metadata),
3247 _cloneNode(node.returnType), 3231 _cloneNode(node.returnType),
3248 _cloneNode(node.identifier), 3232 _cloneNode(node.identifier),
3249 _cloneNode(node.typeParameters), 3233 _cloneNode(node.typeParameters),
3250 _cloneNode(node.parameters)); 3234 _cloneNode(node.parameters));
3251 3235
3252 @override 3236 @override
3253 HideCombinator visitHideCombinator(HideCombinator node) => 3237 HideCombinator visitHideCombinator(HideCombinator node) => new HideCombinator(
3254 astFactory.hideCombinator( 3238 _mapToken(node.keyword), _cloneNodeList(node.hiddenNames));
3255 _mapToken(node.keyword), _cloneNodeList(node.hiddenNames));
3256 3239
3257 @override 3240 @override
3258 IfStatement visitIfStatement(IfStatement node) => astFactory.ifStatement( 3241 IfStatement visitIfStatement(IfStatement node) => new IfStatement(
3259 _mapToken(node.ifKeyword), 3242 _mapToken(node.ifKeyword),
3260 _mapToken(node.leftParenthesis), 3243 _mapToken(node.leftParenthesis),
3261 _cloneNode(node.condition), 3244 _cloneNode(node.condition),
3262 _mapToken(node.rightParenthesis), 3245 _mapToken(node.rightParenthesis),
3263 _cloneNode(node.thenStatement), 3246 _cloneNode(node.thenStatement),
3264 _mapToken(node.elseKeyword), 3247 _mapToken(node.elseKeyword),
3265 _cloneNode(node.elseStatement)); 3248 _cloneNode(node.elseStatement));
3266 3249
3267 @override 3250 @override
3268 ImplementsClause visitImplementsClause(ImplementsClause node) => 3251 ImplementsClause visitImplementsClause(ImplementsClause node) =>
3269 astFactory.implementsClause( 3252 new ImplementsClause(
3270 _mapToken(node.implementsKeyword), _cloneNodeList(node.interfaces)); 3253 _mapToken(node.implementsKeyword), _cloneNodeList(node.interfaces));
3271 3254
3272 @override 3255 @override
3273 ImportDirective visitImportDirective(ImportDirective node) { 3256 ImportDirective visitImportDirective(ImportDirective node) {
3274 ImportDirective copy = astFactory.importDirective( 3257 ImportDirective copy = new ImportDirective(
3275 _cloneNode(node.documentationComment), 3258 _cloneNode(node.documentationComment),
3276 _cloneNodeList(node.metadata), 3259 _cloneNodeList(node.metadata),
3277 _mapToken(node.keyword), 3260 _mapToken(node.keyword),
3278 _cloneNode(node.uri), 3261 _cloneNode(node.uri),
3279 _cloneNodeList(node.configurations), 3262 _cloneNodeList(node.configurations),
3280 _mapToken(node.deferredKeyword), 3263 _mapToken(node.deferredKeyword),
3281 _mapToken(node.asKeyword), 3264 _mapToken(node.asKeyword),
3282 _cloneNode(node.prefix), 3265 _cloneNode(node.prefix),
3283 _cloneNodeList(node.combinators), 3266 _cloneNodeList(node.combinators),
3284 _mapToken(node.semicolon)); 3267 _mapToken(node.semicolon));
3285 copy.element = node.element; 3268 copy.element = node.element;
3286 return copy; 3269 return copy;
3287 } 3270 }
3288 3271
3289 @override 3272 @override
3290 IndexExpression visitIndexExpression(IndexExpression node) { 3273 IndexExpression visitIndexExpression(IndexExpression node) {
3291 Token period = _mapToken(node.period); 3274 Token period = _mapToken(node.period);
3292 IndexExpression copy; 3275 IndexExpression copy;
3293 if (period == null) { 3276 if (period == null) {
3294 copy = astFactory.indexExpressionForTarget( 3277 copy = new IndexExpression.forTarget(
3295 _cloneNode(node.target), 3278 _cloneNode(node.target),
3296 _mapToken(node.leftBracket), 3279 _mapToken(node.leftBracket),
3297 _cloneNode(node.index), 3280 _cloneNode(node.index),
3298 _mapToken(node.rightBracket)); 3281 _mapToken(node.rightBracket));
3299 } else { 3282 } else {
3300 copy = astFactory.indexExpressionForCascade( 3283 copy = new IndexExpression.forCascade(period, _mapToken(node.leftBracket),
3301 period, 3284 _cloneNode(node.index), _mapToken(node.rightBracket));
3302 _mapToken(node.leftBracket),
3303 _cloneNode(node.index),
3304 _mapToken(node.rightBracket));
3305 } 3285 }
3306 copy.auxiliaryElements = node.auxiliaryElements; 3286 copy.auxiliaryElements = node.auxiliaryElements;
3307 copy.propagatedElement = node.propagatedElement; 3287 copy.propagatedElement = node.propagatedElement;
3308 copy.propagatedType = node.propagatedType; 3288 copy.propagatedType = node.propagatedType;
3309 copy.staticElement = node.staticElement; 3289 copy.staticElement = node.staticElement;
3310 copy.staticType = node.staticType; 3290 copy.staticType = node.staticType;
3311 return copy; 3291 return copy;
3312 } 3292 }
3313 3293
3314 @override 3294 @override
3315 InstanceCreationExpression visitInstanceCreationExpression( 3295 InstanceCreationExpression visitInstanceCreationExpression(
3316 InstanceCreationExpression node) { 3296 InstanceCreationExpression node) {
3317 InstanceCreationExpression copy = astFactory.instanceCreationExpression( 3297 InstanceCreationExpression copy = new InstanceCreationExpression(
3318 _mapToken(node.keyword), 3298 _mapToken(node.keyword),
3319 _cloneNode(node.constructorName), 3299 _cloneNode(node.constructorName),
3320 _cloneNode(node.argumentList)); 3300 _cloneNode(node.argumentList));
3321 copy.propagatedType = node.propagatedType; 3301 copy.propagatedType = node.propagatedType;
3322 copy.staticElement = node.staticElement; 3302 copy.staticElement = node.staticElement;
3323 copy.staticType = node.staticType; 3303 copy.staticType = node.staticType;
3324 return copy; 3304 return copy;
3325 } 3305 }
3326 3306
3327 @override 3307 @override
3328 IntegerLiteral visitIntegerLiteral(IntegerLiteral node) { 3308 IntegerLiteral visitIntegerLiteral(IntegerLiteral node) {
3329 IntegerLiteral copy = 3309 IntegerLiteral copy =
3330 astFactory.integerLiteral(_mapToken(node.literal), node.value); 3310 new IntegerLiteral(_mapToken(node.literal), node.value);
3331 copy.propagatedType = node.propagatedType; 3311 copy.propagatedType = node.propagatedType;
3332 copy.staticType = node.staticType; 3312 copy.staticType = node.staticType;
3333 return copy; 3313 return copy;
3334 } 3314 }
3335 3315
3336 @override 3316 @override
3337 InterpolationExpression visitInterpolationExpression( 3317 InterpolationExpression visitInterpolationExpression(
3338 InterpolationExpression node) => 3318 InterpolationExpression node) =>
3339 astFactory.interpolationExpression(_mapToken(node.leftBracket), 3319 new InterpolationExpression(_mapToken(node.leftBracket),
3340 _cloneNode(node.expression), _mapToken(node.rightBracket)); 3320 _cloneNode(node.expression), _mapToken(node.rightBracket));
3341 3321
3342 @override 3322 @override
3343 InterpolationString visitInterpolationString(InterpolationString node) => 3323 InterpolationString visitInterpolationString(InterpolationString node) =>
3344 astFactory.interpolationString(_mapToken(node.contents), node.value); 3324 new InterpolationString(_mapToken(node.contents), node.value);
3345 3325
3346 @override 3326 @override
3347 IsExpression visitIsExpression(IsExpression node) { 3327 IsExpression visitIsExpression(IsExpression node) {
3348 IsExpression copy = astFactory.isExpression( 3328 IsExpression copy = new IsExpression(
3349 _cloneNode(node.expression), 3329 _cloneNode(node.expression),
3350 _mapToken(node.isOperator), 3330 _mapToken(node.isOperator),
3351 _mapToken(node.notOperator), 3331 _mapToken(node.notOperator),
3352 _cloneNode(node.type)); 3332 _cloneNode(node.type));
3353 copy.propagatedType = node.propagatedType; 3333 copy.propagatedType = node.propagatedType;
3354 copy.staticType = node.staticType; 3334 copy.staticType = node.staticType;
3355 return copy; 3335 return copy;
3356 } 3336 }
3357 3337
3358 @override 3338 @override
3359 Label visitLabel(Label node) => 3339 Label visitLabel(Label node) =>
3360 astFactory.label(_cloneNode(node.label), _mapToken(node.colon)); 3340 new Label(_cloneNode(node.label), _mapToken(node.colon));
3361 3341
3362 @override 3342 @override
3363 LabeledStatement visitLabeledStatement(LabeledStatement node) => 3343 LabeledStatement visitLabeledStatement(LabeledStatement node) =>
3364 astFactory.labeledStatement( 3344 new LabeledStatement(
3365 _cloneNodeList(node.labels), _cloneNode(node.statement)); 3345 _cloneNodeList(node.labels), _cloneNode(node.statement));
3366 3346
3367 @override 3347 @override
3368 LibraryDirective visitLibraryDirective(LibraryDirective node) { 3348 LibraryDirective visitLibraryDirective(LibraryDirective node) {
3369 LibraryDirective copy = astFactory.libraryDirective( 3349 LibraryDirective copy = new LibraryDirective(
3370 _cloneNode(node.documentationComment), 3350 _cloneNode(node.documentationComment),
3371 _cloneNodeList(node.metadata), 3351 _cloneNodeList(node.metadata),
3372 _mapToken(node.libraryKeyword), 3352 _mapToken(node.libraryKeyword),
3373 _cloneNode(node.name), 3353 _cloneNode(node.name),
3374 _mapToken(node.semicolon)); 3354 _mapToken(node.semicolon));
3375 copy.element = node.element; 3355 copy.element = node.element;
3376 return copy; 3356 return copy;
3377 } 3357 }
3378 3358
3379 @override 3359 @override
3380 LibraryIdentifier visitLibraryIdentifier(LibraryIdentifier node) { 3360 LibraryIdentifier visitLibraryIdentifier(LibraryIdentifier node) {
3381 LibraryIdentifier copy = 3361 LibraryIdentifier copy =
3382 astFactory.libraryIdentifier(_cloneNodeList(node.components)); 3362 new LibraryIdentifier(_cloneNodeList(node.components));
3383 copy.propagatedType = node.propagatedType; 3363 copy.propagatedType = node.propagatedType;
3384 copy.staticType = node.staticType; 3364 copy.staticType = node.staticType;
3385 return copy; 3365 return copy;
3386 } 3366 }
3387 3367
3388 @override 3368 @override
3389 ListLiteral visitListLiteral(ListLiteral node) { 3369 ListLiteral visitListLiteral(ListLiteral node) {
3390 ListLiteral copy = astFactory.listLiteral( 3370 ListLiteral copy = new ListLiteral(
3391 _mapToken(node.constKeyword), 3371 _mapToken(node.constKeyword),
3392 _cloneNode(node.typeArguments), 3372 _cloneNode(node.typeArguments),
3393 _mapToken(node.leftBracket), 3373 _mapToken(node.leftBracket),
3394 _cloneNodeList(node.elements), 3374 _cloneNodeList(node.elements),
3395 _mapToken(node.rightBracket)); 3375 _mapToken(node.rightBracket));
3396 copy.propagatedType = node.propagatedType; 3376 copy.propagatedType = node.propagatedType;
3397 copy.staticType = node.staticType; 3377 copy.staticType = node.staticType;
3398 return copy; 3378 return copy;
3399 } 3379 }
3400 3380
3401 @override 3381 @override
3402 MapLiteral visitMapLiteral(MapLiteral node) { 3382 MapLiteral visitMapLiteral(MapLiteral node) {
3403 MapLiteral copy = astFactory.mapLiteral( 3383 MapLiteral copy = new MapLiteral(
3404 _mapToken(node.constKeyword), 3384 _mapToken(node.constKeyword),
3405 _cloneNode(node.typeArguments), 3385 _cloneNode(node.typeArguments),
3406 _mapToken(node.leftBracket), 3386 _mapToken(node.leftBracket),
3407 _cloneNodeList(node.entries), 3387 _cloneNodeList(node.entries),
3408 _mapToken(node.rightBracket)); 3388 _mapToken(node.rightBracket));
3409 copy.propagatedType = node.propagatedType; 3389 copy.propagatedType = node.propagatedType;
3410 copy.staticType = node.staticType; 3390 copy.staticType = node.staticType;
3411 return copy; 3391 return copy;
3412 } 3392 }
3413 3393
3414 @override 3394 @override
3415 MapLiteralEntry visitMapLiteralEntry(MapLiteralEntry node) => 3395 MapLiteralEntry visitMapLiteralEntry(MapLiteralEntry node) =>
3416 astFactory.mapLiteralEntry(_cloneNode(node.key), 3396 new MapLiteralEntry(_cloneNode(node.key), _mapToken(node.separator),
3417 _mapToken(node.separator), _cloneNode(node.value)); 3397 _cloneNode(node.value));
3418 3398
3419 @override 3399 @override
3420 MethodDeclaration visitMethodDeclaration(MethodDeclaration node) => 3400 MethodDeclaration visitMethodDeclaration(MethodDeclaration node) =>
3421 astFactory.methodDeclaration( 3401 new MethodDeclaration(
3422 _cloneNode(node.documentationComment), 3402 _cloneNode(node.documentationComment),
3423 _cloneNodeList(node.metadata), 3403 _cloneNodeList(node.metadata),
3424 _mapToken(node.externalKeyword), 3404 _mapToken(node.externalKeyword),
3425 _mapToken(node.modifierKeyword), 3405 _mapToken(node.modifierKeyword),
3426 _cloneNode(node.returnType), 3406 _cloneNode(node.returnType),
3427 _mapToken(node.propertyKeyword), 3407 _mapToken(node.propertyKeyword),
3428 _mapToken(node.operatorKeyword), 3408 _mapToken(node.operatorKeyword),
3429 _cloneNode(node.name), 3409 _cloneNode(node.name),
3430 _cloneNode(node.typeParameters), 3410 _cloneNode(node.typeParameters),
3431 _cloneNode(node.parameters), 3411 _cloneNode(node.parameters),
3432 _cloneNode(node.body)); 3412 _cloneNode(node.body));
3433 3413
3434 @override 3414 @override
3435 MethodInvocation visitMethodInvocation(MethodInvocation node) { 3415 MethodInvocation visitMethodInvocation(MethodInvocation node) {
3436 MethodInvocation copy = astFactory.methodInvocation( 3416 MethodInvocation copy = new MethodInvocation(
3437 _cloneNode(node.target), 3417 _cloneNode(node.target),
3438 _mapToken(node.operator), 3418 _mapToken(node.operator),
3439 _cloneNode(node.methodName), 3419 _cloneNode(node.methodName),
3440 _cloneNode(node.typeArguments), 3420 _cloneNode(node.typeArguments),
3441 _cloneNode(node.argumentList)); 3421 _cloneNode(node.argumentList));
3442 copy.propagatedType = node.propagatedType; 3422 copy.propagatedType = node.propagatedType;
3443 copy.staticType = node.staticType; 3423 copy.staticType = node.staticType;
3444 return copy; 3424 return copy;
3445 } 3425 }
3446 3426
3447 @override 3427 @override
3448 NamedExpression visitNamedExpression(NamedExpression node) { 3428 NamedExpression visitNamedExpression(NamedExpression node) {
3449 NamedExpression copy = astFactory.namedExpression( 3429 NamedExpression copy =
3450 _cloneNode(node.name), _cloneNode(node.expression)); 3430 new NamedExpression(_cloneNode(node.name), _cloneNode(node.expression));
3451 copy.propagatedType = node.propagatedType; 3431 copy.propagatedType = node.propagatedType;
3452 copy.staticType = node.staticType; 3432 copy.staticType = node.staticType;
3453 return copy; 3433 return copy;
3454 } 3434 }
3455 3435
3456 @override 3436 @override
3457 AstNode visitNativeClause(NativeClause node) => astFactory.nativeClause( 3437 AstNode visitNativeClause(NativeClause node) =>
3458 _mapToken(node.nativeKeyword), _cloneNode(node.name)); 3438 new NativeClause(_mapToken(node.nativeKeyword), _cloneNode(node.name));
3459 3439
3460 @override 3440 @override
3461 NativeFunctionBody visitNativeFunctionBody(NativeFunctionBody node) => 3441 NativeFunctionBody visitNativeFunctionBody(NativeFunctionBody node) =>
3462 astFactory.nativeFunctionBody(_mapToken(node.nativeKeyword), 3442 new NativeFunctionBody(_mapToken(node.nativeKeyword),
3463 _cloneNode(node.stringLiteral), _mapToken(node.semicolon)); 3443 _cloneNode(node.stringLiteral), _mapToken(node.semicolon));
3464 3444
3465 @override 3445 @override
3466 NullLiteral visitNullLiteral(NullLiteral node) { 3446 NullLiteral visitNullLiteral(NullLiteral node) {
3467 NullLiteral copy = astFactory.nullLiteral(_mapToken(node.literal)); 3447 NullLiteral copy = new NullLiteral(_mapToken(node.literal));
3468 copy.propagatedType = node.propagatedType; 3448 copy.propagatedType = node.propagatedType;
3469 copy.staticType = node.staticType; 3449 copy.staticType = node.staticType;
3470 return copy; 3450 return copy;
3471 } 3451 }
3472 3452
3473 @override 3453 @override
3474 ParenthesizedExpression visitParenthesizedExpression( 3454 ParenthesizedExpression visitParenthesizedExpression(
3475 ParenthesizedExpression node) { 3455 ParenthesizedExpression node) {
3476 ParenthesizedExpression copy = astFactory.parenthesizedExpression( 3456 ParenthesizedExpression copy = new ParenthesizedExpression(
3477 _mapToken(node.leftParenthesis), 3457 _mapToken(node.leftParenthesis),
3478 _cloneNode(node.expression), 3458 _cloneNode(node.expression),
3479 _mapToken(node.rightParenthesis)); 3459 _mapToken(node.rightParenthesis));
3480 copy.propagatedType = node.propagatedType; 3460 copy.propagatedType = node.propagatedType;
3481 copy.staticType = node.staticType; 3461 copy.staticType = node.staticType;
3482 return copy; 3462 return copy;
3483 } 3463 }
3484 3464
3485 @override 3465 @override
3486 PartDirective visitPartDirective(PartDirective node) { 3466 PartDirective visitPartDirective(PartDirective node) {
3487 PartDirective copy = astFactory.partDirective( 3467 PartDirective copy = new PartDirective(
3488 _cloneNode(node.documentationComment), 3468 _cloneNode(node.documentationComment),
3489 _cloneNodeList(node.metadata), 3469 _cloneNodeList(node.metadata),
3490 _mapToken(node.partKeyword), 3470 _mapToken(node.partKeyword),
3491 _cloneNode(node.uri), 3471 _cloneNode(node.uri),
3492 _mapToken(node.semicolon)); 3472 _mapToken(node.semicolon));
3493 copy.element = node.element; 3473 copy.element = node.element;
3494 return copy; 3474 return copy;
3495 } 3475 }
3496 3476
3497 @override 3477 @override
3498 PartOfDirective visitPartOfDirective(PartOfDirective node) { 3478 PartOfDirective visitPartOfDirective(PartOfDirective node) {
3499 PartOfDirective copy = astFactory.partOfDirective( 3479 PartOfDirective copy = new PartOfDirective(
3500 _cloneNode(node.documentationComment), 3480 _cloneNode(node.documentationComment),
3501 _cloneNodeList(node.metadata), 3481 _cloneNodeList(node.metadata),
3502 _mapToken(node.partKeyword), 3482 _mapToken(node.partKeyword),
3503 _mapToken(node.ofKeyword), 3483 _mapToken(node.ofKeyword),
3504 _cloneNode(node.uri), 3484 _cloneNode(node.uri),
3505 _cloneNode(node.libraryName), 3485 _cloneNode(node.libraryName),
3506 _mapToken(node.semicolon)); 3486 _mapToken(node.semicolon));
3507 copy.element = node.element; 3487 copy.element = node.element;
3508 return copy; 3488 return copy;
3509 } 3489 }
3510 3490
3511 @override 3491 @override
3512 PostfixExpression visitPostfixExpression(PostfixExpression node) { 3492 PostfixExpression visitPostfixExpression(PostfixExpression node) {
3513 PostfixExpression copy = astFactory.postfixExpression( 3493 PostfixExpression copy = new PostfixExpression(
3514 _cloneNode(node.operand), _mapToken(node.operator)); 3494 _cloneNode(node.operand), _mapToken(node.operator));
3515 copy.propagatedElement = node.propagatedElement; 3495 copy.propagatedElement = node.propagatedElement;
3516 copy.propagatedType = node.propagatedType; 3496 copy.propagatedType = node.propagatedType;
3517 copy.staticElement = node.staticElement; 3497 copy.staticElement = node.staticElement;
3518 copy.staticType = node.staticType; 3498 copy.staticType = node.staticType;
3519 return copy; 3499 return copy;
3520 } 3500 }
3521 3501
3522 @override 3502 @override
3523 PrefixedIdentifier visitPrefixedIdentifier(PrefixedIdentifier node) { 3503 PrefixedIdentifier visitPrefixedIdentifier(PrefixedIdentifier node) {
3524 PrefixedIdentifier copy = astFactory.prefixedIdentifier( 3504 PrefixedIdentifier copy = new PrefixedIdentifier(_cloneNode(node.prefix),
3525 _cloneNode(node.prefix), 3505 _mapToken(node.period), _cloneNode(node.identifier));
3526 _mapToken(node.period),
3527 _cloneNode(node.identifier));
3528 copy.propagatedType = node.propagatedType; 3506 copy.propagatedType = node.propagatedType;
3529 copy.staticType = node.staticType; 3507 copy.staticType = node.staticType;
3530 return copy; 3508 return copy;
3531 } 3509 }
3532 3510
3533 @override 3511 @override
3534 PrefixExpression visitPrefixExpression(PrefixExpression node) { 3512 PrefixExpression visitPrefixExpression(PrefixExpression node) {
3535 PrefixExpression copy = astFactory.prefixExpression( 3513 PrefixExpression copy = new PrefixExpression(
3536 _mapToken(node.operator), _cloneNode(node.operand)); 3514 _mapToken(node.operator), _cloneNode(node.operand));
3537 copy.propagatedElement = node.propagatedElement; 3515 copy.propagatedElement = node.propagatedElement;
3538 copy.propagatedType = node.propagatedType; 3516 copy.propagatedType = node.propagatedType;
3539 copy.staticElement = node.staticElement; 3517 copy.staticElement = node.staticElement;
3540 copy.staticType = node.staticType; 3518 copy.staticType = node.staticType;
3541 return copy; 3519 return copy;
3542 } 3520 }
3543 3521
3544 @override 3522 @override
3545 PropertyAccess visitPropertyAccess(PropertyAccess node) { 3523 PropertyAccess visitPropertyAccess(PropertyAccess node) {
3546 PropertyAccess copy = astFactory.propertyAccess(_cloneNode(node.target), 3524 PropertyAccess copy = new PropertyAccess(_cloneNode(node.target),
3547 _mapToken(node.operator), _cloneNode(node.propertyName)); 3525 _mapToken(node.operator), _cloneNode(node.propertyName));
3548 copy.propagatedType = node.propagatedType; 3526 copy.propagatedType = node.propagatedType;
3549 copy.staticType = node.staticType; 3527 copy.staticType = node.staticType;
3550 return copy; 3528 return copy;
3551 } 3529 }
3552 3530
3553 @override 3531 @override
3554 RedirectingConstructorInvocation visitRedirectingConstructorInvocation( 3532 RedirectingConstructorInvocation visitRedirectingConstructorInvocation(
3555 RedirectingConstructorInvocation node) { 3533 RedirectingConstructorInvocation node) {
3556 RedirectingConstructorInvocation copy = 3534 RedirectingConstructorInvocation copy =
3557 astFactory.redirectingConstructorInvocation( 3535 new RedirectingConstructorInvocation(
3558 _mapToken(node.thisKeyword), 3536 _mapToken(node.thisKeyword),
3559 _mapToken(node.period), 3537 _mapToken(node.period),
3560 _cloneNode(node.constructorName), 3538 _cloneNode(node.constructorName),
3561 _cloneNode(node.argumentList)); 3539 _cloneNode(node.argumentList));
3562 copy.staticElement = node.staticElement; 3540 copy.staticElement = node.staticElement;
3563 return copy; 3541 return copy;
3564 } 3542 }
3565 3543
3566 @override 3544 @override
3567 RethrowExpression visitRethrowExpression(RethrowExpression node) { 3545 RethrowExpression visitRethrowExpression(RethrowExpression node) {
3568 RethrowExpression copy = 3546 RethrowExpression copy =
3569 astFactory.rethrowExpression(_mapToken(node.rethrowKeyword)); 3547 new RethrowExpression(_mapToken(node.rethrowKeyword));
3570 copy.propagatedType = node.propagatedType; 3548 copy.propagatedType = node.propagatedType;
3571 copy.staticType = node.staticType; 3549 copy.staticType = node.staticType;
3572 return copy; 3550 return copy;
3573 } 3551 }
3574 3552
3575 @override 3553 @override
3576 ReturnStatement visitReturnStatement(ReturnStatement node) => 3554 ReturnStatement visitReturnStatement(ReturnStatement node) =>
3577 astFactory.returnStatement(_mapToken(node.returnKeyword), 3555 new ReturnStatement(_mapToken(node.returnKeyword),
3578 _cloneNode(node.expression), _mapToken(node.semicolon)); 3556 _cloneNode(node.expression), _mapToken(node.semicolon));
3579 3557
3580 @override 3558 @override
3581 ScriptTag visitScriptTag(ScriptTag node) => 3559 ScriptTag visitScriptTag(ScriptTag node) =>
3582 astFactory.scriptTag(_mapToken(node.scriptTag)); 3560 new ScriptTag(_mapToken(node.scriptTag));
3583 3561
3584 @override 3562 @override
3585 ShowCombinator visitShowCombinator(ShowCombinator node) => astFactory 3563 ShowCombinator visitShowCombinator(ShowCombinator node) => new ShowCombinator(
3586 .showCombinator(_mapToken(node.keyword), _cloneNodeList(node.shownNames)); 3564 _mapToken(node.keyword), _cloneNodeList(node.shownNames));
3587 3565
3588 @override 3566 @override
3589 SimpleFormalParameter visitSimpleFormalParameter( 3567 SimpleFormalParameter visitSimpleFormalParameter(
3590 SimpleFormalParameter node) => 3568 SimpleFormalParameter node) =>
3591 astFactory.simpleFormalParameter( 3569 new SimpleFormalParameter(
3592 _cloneNode(node.documentationComment), 3570 _cloneNode(node.documentationComment),
3593 _cloneNodeList(node.metadata), 3571 _cloneNodeList(node.metadata),
3594 _mapToken(node.keyword), 3572 _mapToken(node.keyword),
3595 _cloneNode(node.type), 3573 _cloneNode(node.type),
3596 _cloneNode(node.identifier)); 3574 _cloneNode(node.identifier));
3597 3575
3598 @override 3576 @override
3599 SimpleIdentifier visitSimpleIdentifier(SimpleIdentifier node) { 3577 SimpleIdentifier visitSimpleIdentifier(SimpleIdentifier node) {
3600 Token mappedToken = _mapToken(node.token); 3578 Token mappedToken = _mapToken(node.token);
3601 if (mappedToken == null) { 3579 if (mappedToken == null) {
3602 // This only happens for SimpleIdentifiers created by the parser as part 3580 // This only happens for SimpleIdentifiers created by the parser as part
3603 // of scanning documentation comments (the tokens for those identifiers 3581 // of scanning documentation comments (the tokens for those identifiers
3604 // are not in the original token stream and hence do not get copied). 3582 // are not in the original token stream and hence do not get copied).
3605 // This extra check can be removed if the scanner is changed to scan 3583 // This extra check can be removed if the scanner is changed to scan
3606 // documentation comments for the parser. 3584 // documentation comments for the parser.
3607 mappedToken = node.token; 3585 mappedToken = node.token;
3608 } 3586 }
3609 SimpleIdentifier copy = astFactory.simpleIdentifier(mappedToken, 3587 SimpleIdentifier copy = new SimpleIdentifier(mappedToken,
3610 isDeclaration: node.inDeclarationContext()); 3588 isDeclaration: node.inDeclarationContext());
3611 copy.auxiliaryElements = node.auxiliaryElements; 3589 copy.auxiliaryElements = node.auxiliaryElements;
3612 copy.propagatedElement = node.propagatedElement; 3590 copy.propagatedElement = node.propagatedElement;
3613 copy.propagatedType = node.propagatedType; 3591 copy.propagatedType = node.propagatedType;
3614 copy.staticElement = node.staticElement; 3592 copy.staticElement = node.staticElement;
3615 copy.staticType = node.staticType; 3593 copy.staticType = node.staticType;
3616 return copy; 3594 return copy;
3617 } 3595 }
3618 3596
3619 @override 3597 @override
3620 SimpleStringLiteral visitSimpleStringLiteral(SimpleStringLiteral node) { 3598 SimpleStringLiteral visitSimpleStringLiteral(SimpleStringLiteral node) {
3621 SimpleStringLiteral copy = 3599 SimpleStringLiteral copy =
3622 astFactory.simpleStringLiteral(_mapToken(node.literal), node.value); 3600 new SimpleStringLiteral(_mapToken(node.literal), node.value);
3623 copy.propagatedType = node.propagatedType; 3601 copy.propagatedType = node.propagatedType;
3624 copy.staticType = node.staticType; 3602 copy.staticType = node.staticType;
3625 return copy; 3603 return copy;
3626 } 3604 }
3627 3605
3628 @override 3606 @override
3629 StringInterpolation visitStringInterpolation(StringInterpolation node) { 3607 StringInterpolation visitStringInterpolation(StringInterpolation node) {
3630 StringInterpolation copy = 3608 StringInterpolation copy =
3631 astFactory.stringInterpolation(_cloneNodeList(node.elements)); 3609 new StringInterpolation(_cloneNodeList(node.elements));
3632 copy.propagatedType = node.propagatedType; 3610 copy.propagatedType = node.propagatedType;
3633 copy.staticType = node.staticType; 3611 copy.staticType = node.staticType;
3634 return copy; 3612 return copy;
3635 } 3613 }
3636 3614
3637 @override 3615 @override
3638 SuperConstructorInvocation visitSuperConstructorInvocation( 3616 SuperConstructorInvocation visitSuperConstructorInvocation(
3639 SuperConstructorInvocation node) { 3617 SuperConstructorInvocation node) {
3640 SuperConstructorInvocation copy = astFactory.superConstructorInvocation( 3618 SuperConstructorInvocation copy = new SuperConstructorInvocation(
3641 _mapToken(node.superKeyword), 3619 _mapToken(node.superKeyword),
3642 _mapToken(node.period), 3620 _mapToken(node.period),
3643 _cloneNode(node.constructorName), 3621 _cloneNode(node.constructorName),
3644 _cloneNode(node.argumentList)); 3622 _cloneNode(node.argumentList));
3645 copy.staticElement = node.staticElement; 3623 copy.staticElement = node.staticElement;
3646 return copy; 3624 return copy;
3647 } 3625 }
3648 3626
3649 @override 3627 @override
3650 SuperExpression visitSuperExpression(SuperExpression node) { 3628 SuperExpression visitSuperExpression(SuperExpression node) {
3651 SuperExpression copy = 3629 SuperExpression copy = new SuperExpression(_mapToken(node.superKeyword));
3652 astFactory.superExpression(_mapToken(node.superKeyword));
3653 copy.propagatedType = node.propagatedType; 3630 copy.propagatedType = node.propagatedType;
3654 copy.staticType = node.staticType; 3631 copy.staticType = node.staticType;
3655 return copy; 3632 return copy;
3656 } 3633 }
3657 3634
3658 @override 3635 @override
3659 SwitchCase visitSwitchCase(SwitchCase node) => astFactory.switchCase( 3636 SwitchCase visitSwitchCase(SwitchCase node) => new SwitchCase(
3660 _cloneNodeList(node.labels), 3637 _cloneNodeList(node.labels),
3661 _mapToken(node.keyword), 3638 _mapToken(node.keyword),
3662 _cloneNode(node.expression), 3639 _cloneNode(node.expression),
3663 _mapToken(node.colon), 3640 _mapToken(node.colon),
3664 _cloneNodeList(node.statements)); 3641 _cloneNodeList(node.statements));
3665 3642
3666 @override 3643 @override
3667 SwitchDefault visitSwitchDefault(SwitchDefault node) => 3644 SwitchDefault visitSwitchDefault(SwitchDefault node) => new SwitchDefault(
3668 astFactory.switchDefault( 3645 _cloneNodeList(node.labels),
3669 _cloneNodeList(node.labels), 3646 _mapToken(node.keyword),
3670 _mapToken(node.keyword), 3647 _mapToken(node.colon),
3671 _mapToken(node.colon), 3648 _cloneNodeList(node.statements));
3672 _cloneNodeList(node.statements));
3673 3649
3674 @override 3650 @override
3675 SwitchStatement visitSwitchStatement(SwitchStatement node) => 3651 SwitchStatement visitSwitchStatement(SwitchStatement node) =>
3676 astFactory.switchStatement( 3652 new SwitchStatement(
3677 _mapToken(node.switchKeyword), 3653 _mapToken(node.switchKeyword),
3678 _mapToken(node.leftParenthesis), 3654 _mapToken(node.leftParenthesis),
3679 _cloneNode(node.expression), 3655 _cloneNode(node.expression),
3680 _mapToken(node.rightParenthesis), 3656 _mapToken(node.rightParenthesis),
3681 _mapToken(node.leftBracket), 3657 _mapToken(node.leftBracket),
3682 _cloneNodeList(node.members), 3658 _cloneNodeList(node.members),
3683 _mapToken(node.rightBracket)); 3659 _mapToken(node.rightBracket));
3684 3660
3685 @override 3661 @override
3686 AstNode visitSymbolLiteral(SymbolLiteral node) { 3662 AstNode visitSymbolLiteral(SymbolLiteral node) {
3687 SymbolLiteral copy = astFactory.symbolLiteral( 3663 SymbolLiteral copy = new SymbolLiteral(
3688 _mapToken(node.poundSign), _mapTokens(node.components)); 3664 _mapToken(node.poundSign), _mapTokens(node.components));
3689 copy.propagatedType = node.propagatedType; 3665 copy.propagatedType = node.propagatedType;
3690 copy.staticType = node.staticType; 3666 copy.staticType = node.staticType;
3691 return copy; 3667 return copy;
3692 } 3668 }
3693 3669
3694 @override 3670 @override
3695 ThisExpression visitThisExpression(ThisExpression node) { 3671 ThisExpression visitThisExpression(ThisExpression node) {
3696 ThisExpression copy = 3672 ThisExpression copy = new ThisExpression(_mapToken(node.thisKeyword));
3697 astFactory.thisExpression(_mapToken(node.thisKeyword));
3698 copy.propagatedType = node.propagatedType; 3673 copy.propagatedType = node.propagatedType;
3699 copy.staticType = node.staticType; 3674 copy.staticType = node.staticType;
3700 return copy; 3675 return copy;
3701 } 3676 }
3702 3677
3703 @override 3678 @override
3704 ThrowExpression visitThrowExpression(ThrowExpression node) { 3679 ThrowExpression visitThrowExpression(ThrowExpression node) {
3705 ThrowExpression copy = astFactory.throwExpression( 3680 ThrowExpression copy = new ThrowExpression(
3706 _mapToken(node.throwKeyword), _cloneNode(node.expression)); 3681 _mapToken(node.throwKeyword), _cloneNode(node.expression));
3707 copy.propagatedType = node.propagatedType; 3682 copy.propagatedType = node.propagatedType;
3708 copy.staticType = node.staticType; 3683 copy.staticType = node.staticType;
3709 return copy; 3684 return copy;
3710 } 3685 }
3711 3686
3712 @override 3687 @override
3713 TopLevelVariableDeclaration visitTopLevelVariableDeclaration( 3688 TopLevelVariableDeclaration visitTopLevelVariableDeclaration(
3714 TopLevelVariableDeclaration node) => 3689 TopLevelVariableDeclaration node) =>
3715 astFactory.topLevelVariableDeclaration( 3690 new TopLevelVariableDeclaration(
3716 _cloneNode(node.documentationComment), 3691 _cloneNode(node.documentationComment),
3717 _cloneNodeList(node.metadata), 3692 _cloneNodeList(node.metadata),
3718 _cloneNode(node.variables), 3693 _cloneNode(node.variables),
3719 _mapToken(node.semicolon)); 3694 _mapToken(node.semicolon));
3720 3695
3721 @override 3696 @override
3722 TryStatement visitTryStatement(TryStatement node) => astFactory.tryStatement( 3697 TryStatement visitTryStatement(TryStatement node) => new TryStatement(
3723 _mapToken(node.tryKeyword), 3698 _mapToken(node.tryKeyword),
3724 _cloneNode(node.body), 3699 _cloneNode(node.body),
3725 _cloneNodeList(node.catchClauses), 3700 _cloneNodeList(node.catchClauses),
3726 _mapToken(node.finallyKeyword), 3701 _mapToken(node.finallyKeyword),
3727 _cloneNode(node.finallyBlock)); 3702 _cloneNode(node.finallyBlock));
3728 3703
3729 @override 3704 @override
3730 TypeArgumentList visitTypeArgumentList(TypeArgumentList node) => 3705 TypeArgumentList visitTypeArgumentList(TypeArgumentList node) =>
3731 astFactory.typeArgumentList(_mapToken(node.leftBracket), 3706 new TypeArgumentList(_mapToken(node.leftBracket),
3732 _cloneNodeList(node.arguments), _mapToken(node.rightBracket)); 3707 _cloneNodeList(node.arguments), _mapToken(node.rightBracket));
3733 3708
3734 @override 3709 @override
3735 TypeName visitTypeName(TypeName node) { 3710 TypeName visitTypeName(TypeName node) {
3736 TypeName copy = astFactory.typeName( 3711 TypeName copy =
3737 _cloneNode(node.name), _cloneNode(node.typeArguments)); 3712 new TypeName(_cloneNode(node.name), _cloneNode(node.typeArguments));
3738 copy.type = node.type; 3713 copy.type = node.type;
3739 return copy; 3714 return copy;
3740 } 3715 }
3741 3716
3742 @override 3717 @override
3743 TypeParameter visitTypeParameter(TypeParameter node) => 3718 TypeParameter visitTypeParameter(TypeParameter node) => new TypeParameter(
3744 astFactory.typeParameter( 3719 _cloneNode(node.documentationComment),
3745 _cloneNode(node.documentationComment), 3720 _cloneNodeList(node.metadata),
3746 _cloneNodeList(node.metadata), 3721 _cloneNode(node.name),
3747 _cloneNode(node.name), 3722 _mapToken(node.extendsKeyword),
3748 _mapToken(node.extendsKeyword), 3723 _cloneNode(node.bound));
3749 _cloneNode(node.bound));
3750 3724
3751 @override 3725 @override
3752 TypeParameterList visitTypeParameterList(TypeParameterList node) => 3726 TypeParameterList visitTypeParameterList(TypeParameterList node) =>
3753 astFactory.typeParameterList(_mapToken(node.leftBracket), 3727 new TypeParameterList(_mapToken(node.leftBracket),
3754 _cloneNodeList(node.typeParameters), _mapToken(node.rightBracket)); 3728 _cloneNodeList(node.typeParameters), _mapToken(node.rightBracket));
3755 3729
3756 @override 3730 @override
3757 VariableDeclaration visitVariableDeclaration(VariableDeclaration node) => 3731 VariableDeclaration visitVariableDeclaration(VariableDeclaration node) =>
3758 astFactory.variableDeclaration(_cloneNode(node.name), 3732 new VariableDeclaration(_cloneNode(node.name), _mapToken(node.equals),
3759 _mapToken(node.equals), _cloneNode(node.initializer)); 3733 _cloneNode(node.initializer));
3760 3734
3761 @override 3735 @override
3762 VariableDeclarationList visitVariableDeclarationList( 3736 VariableDeclarationList visitVariableDeclarationList(
3763 VariableDeclarationList node) => 3737 VariableDeclarationList node) =>
3764 astFactory.variableDeclarationList( 3738 new VariableDeclarationList(
3765 null, 3739 null,
3766 _cloneNodeList(node.metadata), 3740 _cloneNodeList(node.metadata),
3767 _mapToken(node.keyword), 3741 _mapToken(node.keyword),
3768 _cloneNode(node.type), 3742 _cloneNode(node.type),
3769 _cloneNodeList(node.variables)); 3743 _cloneNodeList(node.variables));
3770 3744
3771 @override 3745 @override
3772 VariableDeclarationStatement visitVariableDeclarationStatement( 3746 VariableDeclarationStatement visitVariableDeclarationStatement(
3773 VariableDeclarationStatement node) => 3747 VariableDeclarationStatement node) =>
3774 astFactory.variableDeclarationStatement( 3748 new VariableDeclarationStatement(
3775 _cloneNode(node.variables), _mapToken(node.semicolon)); 3749 _cloneNode(node.variables), _mapToken(node.semicolon));
3776 3750
3777 @override 3751 @override
3778 WhileStatement visitWhileStatement(WhileStatement node) => 3752 WhileStatement visitWhileStatement(WhileStatement node) => new WhileStatement(
3779 astFactory.whileStatement( 3753 _mapToken(node.whileKeyword),
3780 _mapToken(node.whileKeyword), 3754 _mapToken(node.leftParenthesis),
3781 _mapToken(node.leftParenthesis), 3755 _cloneNode(node.condition),
3782 _cloneNode(node.condition), 3756 _mapToken(node.rightParenthesis),
3783 _mapToken(node.rightParenthesis), 3757 _cloneNode(node.body));
3784 _cloneNode(node.body));
3785 3758
3786 @override 3759 @override
3787 WithClause visitWithClause(WithClause node) => astFactory.withClause( 3760 WithClause visitWithClause(WithClause node) => new WithClause(
3788 _mapToken(node.withKeyword), _cloneNodeList(node.mixinTypes)); 3761 _mapToken(node.withKeyword), _cloneNodeList(node.mixinTypes));
3789 3762
3790 @override 3763 @override
3791 YieldStatement visitYieldStatement(YieldStatement node) => 3764 YieldStatement visitYieldStatement(YieldStatement node) => new YieldStatement(
3792 astFactory.yieldStatement( 3765 _mapToken(node.yieldKeyword),
3793 _mapToken(node.yieldKeyword), 3766 _mapToken(node.star),
3794 _mapToken(node.star), 3767 _cloneNode(node.expression),
3795 _cloneNode(node.expression), 3768 _mapToken(node.semicolon));
3796 _mapToken(node.semicolon));
3797 3769
3798 AstNode/*=E*/ _cloneNode/*<E extends AstNode>*/(AstNode/*=E*/ node) { 3770 AstNode/*=E*/ _cloneNode/*<E extends AstNode>*/(AstNode/*=E*/ node) {
3799 if (node == null) { 3771 if (node == null) {
3800 return null; 3772 return null;
3801 } 3773 }
3802 if (identical(node, _oldNode)) { 3774 if (identical(node, _oldNode)) {
3803 return _newNode as AstNode/*=E*/; 3775 return _newNode as AstNode/*=E*/;
3804 } 3776 }
3805 return node.accept(this) as AstNode/*=E*/; 3777 return node.accept(this) as AstNode/*=E*/;
3806 } 3778 }
(...skipping 5373 matching lines...) Expand 10 before | Expand all | Expand 10 after
9180 if (node.star != null) { 9152 if (node.star != null) {
9181 sink.write("yield* "); 9153 sink.write("yield* ");
9182 } else { 9154 } else {
9183 sink.write("yield "); 9155 sink.write("yield ");
9184 } 9156 }
9185 safelyVisitNode(node.expression); 9157 safelyVisitNode(node.expression);
9186 sink.write(";"); 9158 sink.write(";");
9187 return null; 9159 return null;
9188 } 9160 }
9189 } 9161 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/dart/ast/ast.dart ('k') | pkg/analyzer/lib/src/dart/constant/evaluation.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698