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

Unified Diff: tests/compiler/dart2js/serialization/model_test_helper.dart

Issue 2511403002: Compute [WorldImpact] for main method as entrypoint (Closed)
Patch Set: Updated cf. comments. Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/compiler/dart2js/resolver_test.dart ('k') | tests/compiler/dart2js/serialization/test_helper.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)));
« no previous file with comments | « tests/compiler/dart2js/resolver_test.dart ('k') | tests/compiler/dart2js/serialization/test_helper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698