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

Side by Side Diff: pkg/kernel/lib/clone.dart

Issue 2614663007: Revert "Non-format-changing kernel offset changes" (Closed)
Patch Set: Created 3 years, 11 months 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/kernel/lib/ast.dart ('k') | pkg/kernel/lib/frontend/accessors.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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 library kernel.clone; 4 library kernel.clone;
5 5
6 import 'ast.dart'; 6 import 'ast.dart';
7 import 'type_algebra.dart'; 7 import 'type_algebra.dart';
8 8
9 /// Visitor that return a clone of a tree, maintaining references to cloned 9 /// Visitor that return a clone of a tree, maintaining references to cloned
10 /// objects. 10 /// objects.
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 return new FunctionDeclaration(newVariable, clone(node.function)); 334 return new FunctionDeclaration(newVariable, clone(node.function));
335 } 335 }
336 336
337 // Members 337 // Members
338 visitConstructor(Constructor node) { 338 visitConstructor(Constructor node) {
339 return new Constructor(clone(node.function), 339 return new Constructor(clone(node.function),
340 name: node.name, 340 name: node.name,
341 isConst: node.isConst, 341 isConst: node.isConst,
342 isExternal: node.isExternal, 342 isExternal: node.isExternal,
343 initializers: node.initializers.map(clone).toList(), 343 initializers: node.initializers.map(clone).toList(),
344 transformerFlags: node.transformerFlags) 344 transformerFlags: node.transformerFlags);
345 ..fileEndOffset = node.fileEndOffset;
346 } 345 }
347 346
348 visitProcedure(Procedure node) { 347 visitProcedure(Procedure node) {
349 return new Procedure(node.name, node.kind, clone(node.function), 348 return new Procedure(node.name, node.kind, clone(node.function),
350 isAbstract: node.isAbstract, 349 isAbstract: node.isAbstract,
351 isStatic: node.isStatic, 350 isStatic: node.isStatic,
352 isExternal: node.isExternal, 351 isExternal: node.isExternal,
353 isConst: node.isConst, 352 isConst: node.isConst,
354 transformerFlags: node.transformerFlags, 353 transformerFlags: node.transformerFlags,
355 fileUri: node.fileUri)..fileEndOffset = node.fileEndOffset; 354 fileUri: node.fileUri);
356 } 355 }
357 356
358 visitField(Field node) { 357 visitField(Field node) {
359 return new Field(node.name, 358 return new Field(node.name,
360 type: visitType(node.type), 359 type: visitType(node.type),
361 initializer: cloneOptional(node.initializer), 360 initializer: cloneOptional(node.initializer),
362 isFinal: node.isFinal, 361 isFinal: node.isFinal,
363 isConst: node.isConst, 362 isConst: node.isConst,
364 isStatic: node.isStatic, 363 isStatic: node.isStatic,
365 hasImplicitGetter: node.hasImplicitGetter, 364 hasImplicitGetter: node.hasImplicitGetter,
366 hasImplicitSetter: node.hasImplicitSetter, 365 hasImplicitSetter: node.hasImplicitSetter,
367 transformerFlags: node.transformerFlags, 366 transformerFlags: node.transformerFlags,
368 fileUri: node.fileUri)..fileEndOffset = node.fileEndOffset; 367 fileUri: node.fileUri);
369 } 368 }
370 369
371 visitTypeParameter(TypeParameter node) { 370 visitTypeParameter(TypeParameter node) {
372 var newNode = new TypeParameter(node.name); 371 var newNode = new TypeParameter(node.name);
373 typeSubstitution[node] = new TypeParameterType(newNode); 372 typeSubstitution[node] = new TypeParameterType(newNode);
374 newNode.bound = visitType(node.bound); 373 newNode.bound = visitType(node.bound);
375 return newNode; 374 return newNode;
376 } 375 }
377 376
378 TreeNode cloneFunctionNodeBody(FunctionNode node) => cloneOptional(node.body); 377 TreeNode cloneFunctionNodeBody(FunctionNode node) => cloneOptional(node.body);
379 378
380 visitFunctionNode(FunctionNode node) { 379 visitFunctionNode(FunctionNode node) {
381 var typeParameters = node.typeParameters.map(clone).toList(); 380 var typeParameters = node.typeParameters.map(clone).toList();
382 var positional = node.positionalParameters.map(clone).toList(); 381 var positional = node.positionalParameters.map(clone).toList();
383 var named = node.namedParameters.map(clone).toList(); 382 var named = node.namedParameters.map(clone).toList();
384 return new FunctionNode(cloneFunctionNodeBody(node), 383 return new FunctionNode(cloneFunctionNodeBody(node),
385 typeParameters: typeParameters, 384 typeParameters: typeParameters,
386 positionalParameters: positional, 385 positionalParameters: positional,
387 namedParameters: named, 386 namedParameters: named,
388 requiredParameterCount: node.requiredParameterCount, 387 requiredParameterCount: node.requiredParameterCount,
389 returnType: visitType(node.returnType), 388 returnType: visitType(node.returnType),
390 asyncMarker: node.asyncMarker)..fileEndOffset = node.fileEndOffset; 389 asyncMarker: node.asyncMarker);
391 } 390 }
392 391
393 visitArguments(Arguments node) { 392 visitArguments(Arguments node) {
394 return new Arguments(node.positional.map(clone).toList(), 393 return new Arguments(node.positional.map(clone).toList(),
395 types: node.types.map(visitType).toList(), 394 types: node.types.map(visitType).toList(),
396 named: node.named.map(clone).toList()); 395 named: node.named.map(clone).toList());
397 } 396 }
398 397
399 visitNamedExpression(NamedExpression node) { 398 visitNamedExpression(NamedExpression node) {
400 return new NamedExpression(node.name, clone(node.value)); 399 return new NamedExpression(node.name, clone(node.value));
401 } 400 }
402 } 401 }
OLDNEW
« no previous file with comments | « pkg/kernel/lib/ast.dart ('k') | pkg/kernel/lib/frontend/accessors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698