Index: tests/compiler/dart2js/serialization_test_helper.dart |
diff --git a/tests/compiler/dart2js/serialization_test_helper.dart b/tests/compiler/dart2js/serialization_test_helper.dart |
index b2c72917cad3217310773cf90635217126eb343b..4ee842de3f6ac012e3e748a767915331f31a2ad7 100644 |
--- a/tests/compiler/dart2js/serialization_test_helper.dart |
+++ b/tests/compiler/dart2js/serialization_test_helper.dart |
@@ -294,9 +294,20 @@ void checkLoadedLibraryMembers( |
if (member1.isClass && member2.isClass) { |
ClassElement class1 = member1; |
ClassElement class2 = member2; |
+ if (!class1.isResolved) return; |
+ |
class1.forEachLocalMember((m1) { |
- checkMembers(m1, class2.lookupLocalMember(m1.name)); |
+ checkMembers(m1, class2.localLookup(m1.name)); |
}); |
+ ClassElement superclass1 = class1.superclass; |
+ ClassElement superclass2 = class2.superclass; |
+ while (superclass1 != null && superclass1.isUnnamedMixinApplication) { |
+ for (ConstructorElement c1 in superclass1.constructors) { |
+ checkMembers(c1, superclass2.lookupConstructor(c1.name)); |
+ } |
+ superclass1 = superclass1.superclass; |
+ superclass2 = superclass2.superclass; |
+ } |
return; |
} |
@@ -305,7 +316,7 @@ void checkLoadedLibraryMembers( |
} |
if (member2 == null) { |
- return; |
+ throw 'Missing member for ${member1}'; |
} |
if (areElementsEquivalent(member1, member2)) { |
@@ -348,14 +359,20 @@ void checkImpacts(Compiler compiler1, Element member1, |
Compiler compiler2, Element member2, |
{bool verbose: false}) { |
ResolutionImpact impact1 = compiler1.resolution.getResolutionImpact(member1); |
- ResolutionImpact impact2 = |
- compiler2.serialization.deserializer.getResolutionImpact(member2); |
+ ResolutionImpact impact2 = compiler2.resolution.getResolutionImpact(member2); |
- if (impact1 == null || impact2 == null) return; |
+ if (impact1 == null && impact2 == null) return; |
if (verbose) { |
print('Checking impacts for $member1 vs $member2'); |
} |
+ if (impact1 == null) { |
+ throw 'Missing impact for $member1. $member2 has $impact2'; |
+ } |
+ if (impact2 == null) { |
+ throw 'Missing impact for $member2. $member1 has $impact1'; |
+ } |
+ |
testResolutionImpactEquivalence(impact1, impact2, const CheckStrategy()); |
} |