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

Side by Side Diff: pkg/fletchc/lib/src/fletch_system_builder.dart

Issue 1450393002: Roll sdk dependency to 34357cdad108dcba734949bd13bd28c76ea285e0 (Closed) Base URL: git@github.com:dart-lang/fletch.git@master
Patch Set: Address ahe's review Created 5 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/fletchc/lib/src/fletch_registry.dart ('k') | no next file » | 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) 2015, the Fletch project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Fletch 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.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 library fletchc.fletch_system_builder; 5 library fletchc.fletch_system_builder;
6 6
7 import 'dart:typed_data'; 7 import 'dart:typed_data';
8 8
9 import 'package:compiler/src/constants/values.dart' show 9 import 'package:compiler/src/constants/values.dart' show
10 ConstantValue, 10 ConstantValue,
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 FletchFunctionBase tearoff = lookupFunction(tearoffId); 481 FletchFunctionBase tearoff = lookupFunction(tearoffId);
482 commands 482 commands
483 ..add(new PushFromMap(MapId.classes, tearoff.memberOf)) 483 ..add(new PushFromMap(MapId.classes, tearoff.memberOf))
484 ..add(const PushNewInstance()); 484 ..add(const PushNewInstance());
485 } else if (constant.isConstructedObject) { 485 } else if (constant.isConstructedObject) {
486 ConstructedConstantValue value = constant; 486 ConstructedConstantValue value = constant;
487 ClassElement classElement = value.type.element; 487 ClassElement classElement = value.type.element;
488 // TODO(ajohnsen): Avoid usage of builders (should be FletchClass). 488 // TODO(ajohnsen): Avoid usage of builders (should be FletchClass).
489 FletchClassBuilder classBuilder = _classBuildersByElement[classElement]; 489 FletchClassBuilder classBuilder = _classBuildersByElement[classElement];
490 490
491 void addIfField(MemberElement member) { 491 void addIfInstanceField(MemberElement member) {
492 if (!member.isField || member.isStatic || member.isPatch) return; 492 if (!member.isField || member.isStatic || member.isPatch) return;
493 FieldElement fieldElement = member; 493 FieldElement fieldElement = member;
494 ConstantValue fieldValue = value.fields[fieldElement]; 494 ConstantValue fieldValue = value.fields[fieldElement];
495 int fieldId = context.compiledConstants[fieldValue]; 495 int fieldId = context.compiledConstants[fieldValue];
496 commands.add(new PushFromMap(MapId.constants, fieldId)); 496 commands.add(new PushFromMap(MapId.constants, fieldId));
497 } 497 }
498 498
499 // Adds all the fields of [currentClass] in order starting from the top 499 // Adds all the fields of [currentClass] in order starting from the top
500 // of the inheritance chain, and for each class adds non-patch fields 500 // of the inheritance chain, and for each class adds non-patch fields
501 // before patch fields. 501 // before patch fields.
502 void addFields(ClassElement currentClass) { 502 void addFields(ClassElement currentClass) {
503 if (currentClass.superclass != null) { 503 if (currentClass.superclass != null) {
504 addFields(currentClass.superclass); 504 addFields(currentClass.superclass);
505 } 505 }
506 currentClass.forEachLocalMember(addIfField); 506 currentClass.forEachLocalMember(addIfInstanceField);
507 if (currentClass.isPatched) { 507 if (currentClass.isPatched) {
508 currentClass.patch.forEachLocalMember(addIfField); 508 currentClass.patch.forEachLocalMember(addIfInstanceField);
509 } 509 }
510 } 510 }
511 511
512 addFields(classElement); 512 addFields(classElement);
513 513
514 commands 514 commands
515 ..add(new PushFromMap(MapId.classes, classBuilder.classId)) 515 ..add(new PushFromMap(MapId.classes, classBuilder.classId))
516 ..add(const PushNewInstance()); 516 ..add(const PushNewInstance());
517 } else if (constant is FletchClassInstanceConstant) { 517 } else if (constant is FletchClassInstanceConstant) {
518 commands 518 commands
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 constructorInitializersByElement, 690 constructorInitializersByElement,
691 tearoffsById, 691 tearoffsById,
692 classesById, 692 classesById,
693 classesByElement, 693 classesByElement,
694 constants, 694 constants,
695 symbolByFletchSelectorId, 695 symbolByFletchSelectorId,
696 gettersByFieldIndex, 696 gettersByFieldIndex,
697 settersByFieldIndex); 697 settersByFieldIndex);
698 } 698 }
699 } 699 }
OLDNEW
« no previous file with comments | « pkg/fletchc/lib/src/fletch_registry.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698