Index: tests/compiler/dart2js/serialization/model_test_helper.dart |
diff --git a/tests/compiler/dart2js/serialization/model_test_helper.dart b/tests/compiler/dart2js/serialization/model_test_helper.dart |
index 4d4fef098b435c1c6c10dcd13847f58f21ab9fdc..e3e6614edf739020ed237997511212a43995192b 100644 |
--- a/tests/compiler/dart2js/serialization/model_test_helper.dart |
+++ b/tests/compiler/dart2js/serialization/model_test_helper.dart |
@@ -109,77 +109,35 @@ void checkResolutionEnqueuers( |
ResolutionEnqueuer enqueuer1, ResolutionEnqueuer enqueuer2, |
{bool typeEquivalence(DartType a, DartType b): areTypesEquivalent, |
bool elementFilter(Element element), |
- bool checkInstantiatedTypesAndClasses: true, |
bool verbose: false}) { |
- Iterable<Element> processedElements1 = enqueuer1.processedElements; |
- Iterable<Element> processedElements2 = enqueuer2.processedElements; |
- if (elementFilter != null) { |
- processedElements1 = processedElements1.where(elementFilter); |
- processedElements2 = processedElements2.where(elementFilter); |
- } |
- |
- checkSets(processedElements1, processedElements2, |
+ checkSets(enqueuer1.processedElements, enqueuer2.processedElements, |
"Processed element mismatch", areElementsEquivalent, |
- verbose: verbose); |
- |
- /// Normalize the instantiation map by removing redirections and converting |
- /// redirecting factories to their effective target. |
- Map<ClassElement, InstantiationInfo> createInstantiationMap( |
- ResolutionWorldBuilder worldBuilder) { |
- Map<ClassElement, InstantiationInfo> instantiationMap = |
- <ClassElement, InstantiationInfo>{}; |
- |
- InstantiationInfo infoFor(ClassElement cls) { |
- return instantiationMap.putIfAbsent(cls, () => new InstantiationInfo()); |
- } |
+ elementFilter: elementFilter, verbose: verbose); |
- worldBuilder.forEachInstantiatedClass((cls, info) { |
- if (info.instantiationMap != null) { |
- info.instantiationMap |
- .forEach((ConstructorElement constructor, Set<Instance> set) { |
- for (Instance instance in set) { |
- if (instance.isRedirection) { |
- continue; |
- } |
- if (constructor == null || !constructor.isRedirectingFactory) { |
- infoFor(cls) |
- .addInstantiation(constructor, instance.type, instance.kind); |
- } else { |
- ConstructorElement target = constructor.effectiveTarget; |
- InterfaceType targetType = |
- constructor.computeEffectiveTargetType(instance.type); |
- infoFor(targetType.element).addInstantiation( |
- target, targetType, Instantiation.DIRECTLY_INSTANTIATED); |
- } |
- } |
- }); |
- } |
- }); |
- return instantiationMap; |
- } |
+ ResolutionWorldBuilderImpl worldBuilder1 = enqueuer1.universe; |
+ ResolutionWorldBuilderImpl worldBuilder2 = enqueuer2.universe; |
checkMaps( |
- createInstantiationMap(enqueuer1.universe), |
- createInstantiationMap(enqueuer2.universe), |
+ worldBuilder1.getInstantiationMap(), |
+ worldBuilder2.getInstantiationMap(), |
"Instantiated classes mismatch", |
areElementsEquivalent, |
(a, b) => areInstantiationInfosEquivalent(a, b, typeEquivalence), |
verbose: verbose); |
- if (checkInstantiatedTypesAndClasses) { |
- checkSets( |
- enqueuer1.universe.directlyInstantiatedClasses, |
- enqueuer2.universe.directlyInstantiatedClasses, |
- "Directly instantiated classes mismatch", |
- areElementsEquivalent, |
- verbose: verbose); |
- checkSets( |
- enqueuer1.universe.instantiatedTypes, |
- enqueuer2.universe.instantiatedTypes, |
- "Instantiated types mismatch", |
- typeEquivalence, |
- verbose: verbose); |
- } |
+ checkSets( |
+ enqueuer1.universe.directlyInstantiatedClasses, |
+ enqueuer2.universe.directlyInstantiatedClasses, |
+ "Directly instantiated classes mismatch", |
+ areElementsEquivalent, |
+ verbose: verbose); |
+ |
+ checkSets( |
+ enqueuer1.universe.instantiatedTypes, |
+ enqueuer2.universe.instantiatedTypes, |
+ "Instantiated types mismatch", |
+ typeEquivalence, |
+ verbose: verbose); |
checkSets(enqueuer1.universe.isChecks, enqueuer2.universe.isChecks, |
"Is-check mismatch", typeEquivalence, |
@@ -474,7 +432,7 @@ bool areInstantiationInfosEquivalent(InstantiationInfo info1, |
info1.instantiationMap, |
info2.instantiationMap, |
'instantiationMap of\n ' |
- '${info1.instantiationMap}\nvs ${info2.instantiationMap}', |
+ '${info1.instantiationMap}\nvs ${info2.instantiationMap}', |
areElementsEquivalent, |
(a, b) => areSetsEquivalent( |
a, b, (a, b) => areInstancesEquivalent(a, b, typeEquivalence))); |