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

Side by Side Diff: pkg/compiler/lib/src/universe/resolution_world_builder.dart

Issue 2967933002: Bring js_model/model_test on par with compile_from_dill tests. (Closed)
Patch Set: Created 3 years, 5 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
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 part of world_builder; 5 part of world_builder;
6 6
7 abstract class ResolutionWorldBuilder implements WorldBuilder, OpenWorld { 7 abstract class ResolutionWorldBuilder implements WorldBuilder, OpenWorld {
8 /// Set of all local functions in the program. Used by the mirror tracking 8 /// Set of all local functions in the program. Used by the mirror tracking
9 /// system to find all live closure instances. 9 /// system to find all live closure instances.
10 Iterable<Local> get localFunctions; 10 Iterable<Local> get localFunctions;
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 // Use the [:seenClasses:] set to include non-instantiated 921 // Use the [:seenClasses:] set to include non-instantiated
922 // classes: if the superclass of these classes require RTI, then 922 // classes: if the superclass of these classes require RTI, then
923 // they also need RTI, so that a constructor passes the type 923 // they also need RTI, so that a constructor passes the type
924 // variables to the super constructor. 924 // variables to the super constructor.
925 forEachInstantiatedClass(addSubtypes); 925 forEachInstantiatedClass(addSubtypes);
926 926
927 _classHierarchyNodes.keys.toList().forEach(_ensureClassSet); 927 _classHierarchyNodes.keys.toList().forEach(_ensureClassSet);
928 928
929 return typesImplementedBySubclasses; 929 return typesImplementedBySubclasses;
930 } 930 }
931
932 Iterable<MemberEntity> computeAssignedInstanceMembers() {
933 Set<MemberEntity> assignedInstanceMembers = new Set<MemberEntity>();
934 for (MemberEntity instanceMember in _liveInstanceMembers) {
935 if (hasInvokedSetter(instanceMember)) {
936 assignedInstanceMembers.add(instanceMember);
937 }
938 }
939 assignedInstanceMembers.addAll(fieldSetters);
940 return assignedInstanceMembers;
941 }
931 } 942 }
932 943
933 abstract class KernelResolutionWorldBuilderBase 944 abstract class KernelResolutionWorldBuilderBase
934 extends ResolutionWorldBuilderBase { 945 extends ResolutionWorldBuilderBase {
935 KernelToElementMapForImpactImpl get elementMap; 946 KernelToElementMapForImpactImpl get elementMap;
936 947
937 KernelResolutionWorldBuilderBase( 948 KernelResolutionWorldBuilderBase(
938 ElementEnvironment elementEnvironment, 949 ElementEnvironment elementEnvironment,
939 DartTypes dartTypes, 950 DartTypes dartTypes,
940 CommonElements commonElements, 951 CommonElements commonElements,
(...skipping 25 matching lines...) Expand all
966 "ClassHierarchyNode/ClassSet mismatch: " 977 "ClassHierarchyNode/ClassSet mismatch: "
967 "$_classHierarchyNodes vs $_classSets"); 978 "$_classHierarchyNodes vs $_classSets");
968 return _closedWorldCache = new KernelClosedWorld(elementMap, 979 return _closedWorldCache = new KernelClosedWorld(elementMap,
969 elementEnvironment: _elementEnvironment, 980 elementEnvironment: _elementEnvironment,
970 dartTypes: _dartTypes, 981 dartTypes: _dartTypes,
971 commonElements: _commonElements, 982 commonElements: _commonElements,
972 nativeData: _nativeDataBuilder.close(), 983 nativeData: _nativeDataBuilder.close(),
973 interceptorData: _interceptorDataBuilder.close(), 984 interceptorData: _interceptorDataBuilder.close(),
974 backendUsage: _backendUsageBuilder.close(), 985 backendUsage: _backendUsageBuilder.close(),
975 constantSystem: _constantSystem, 986 constantSystem: _constantSystem,
976 resolutionWorldBuilder: this,
977 implementedClasses: _implementedClasses, 987 implementedClasses: _implementedClasses,
978 liveInstanceMembers: _liveInstanceMembers, 988 liveInstanceMembers: _liveInstanceMembers,
989 assignedInstanceMembers: computeAssignedInstanceMembers(),
979 allTypedefs: _allTypedefs, 990 allTypedefs: _allTypedefs,
980 mixinUses: _mixinUses, 991 mixinUses: _mixinUses,
981 typesImplementedBySubclasses: typesImplementedBySubclasses, 992 typesImplementedBySubclasses: typesImplementedBySubclasses,
982 classHierarchyNodes: _classHierarchyNodes, 993 classHierarchyNodes: _classHierarchyNodes,
983 classSets: _classSets); 994 classSets: _classSets);
984 } 995 }
985 996
986 @override 997 @override
987 void registerClass(ClassEntity cls) { 998 void registerClass(ClassEntity cls) {
988 throw new UnimplementedError('KernelResolutionWorldBuilder.registerClass'); 999 throw new UnimplementedError('KernelResolutionWorldBuilder.registerClass');
989 } 1000 }
990 } 1001 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698