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

Unified Diff: tests/compiler/dart2js/equivalence/check_functions.dart

Issue 2882523003: Add forEachLibraryMember and forEachConstructor to ElementEnvironment (Closed)
Patch Set: Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/resolution/resolution_strategy.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/equivalence/check_functions.dart
diff --git a/tests/compiler/dart2js/equivalence/check_functions.dart b/tests/compiler/dart2js/equivalence/check_functions.dart
index 4f82bde0ff62a82929215ac5616a924934a7047a..7ae88cc611d336b23e4555e5fc38f501e5c857ee 100644
--- a/tests/compiler/dart2js/equivalence/check_functions.dart
+++ b/tests/compiler/dart2js/equivalence/check_functions.dart
@@ -429,6 +429,11 @@ void checkBackendUsage(
checkElementEnvironment(
ElementEnvironment env1, ElementEnvironment env2, TestStrategy strategy) {
+ strategy.testElements(
+ env1, env2, 'mainLibrary', env1.mainLibrary, env2.mainLibrary);
+ strategy.testElements(
+ env1, env2, 'mainFunction', env1.mainFunction, env2.mainFunction);
+
checkMembers(MemberEntity member1, MemberEntity member2) {
Expect.equals(env1.isDeferredLoadLibraryGetter(member1),
env2.isDeferredLoadLibraryGetter(member2));
@@ -519,11 +524,64 @@ checkElementEnvironment(
return result;
}, strategy.elementEquivalence);
+ List<ConstructorEntity> constructors2 = <ConstructorEntity>[];
+ env1.forEachConstructor(cls1, (ConstructorEntity constructor1) {
+ Expect.identical(
+ constructor1, env1.lookupConstructor(cls1, constructor1.name));
+
+ String constructorName = constructor1.name;
+ ConstructorEntity constructor2 =
+ env2.lookupConstructor(cls2, constructorName);
+ Expect.isNotNull(
+ constructor2, "Missing constructor for $constructor1 in $cls2 ");
+ Expect.identical(
+ constructor2, env2.lookupConstructor(cls2, constructor2.name));
+
+ constructors2.add(constructor2);
+
+ check(cls1, cls2, 'constructor:${constructorName}', constructor1,
+ constructor2, strategy.elementEquivalence);
+
+ checkMembers(constructor1, constructor2);
+ });
+ env2.forEachConstructor(cls2, (ConstructorEntity constructor2) {
+ Expect.isTrue(constructors2.contains(constructor2),
Siggi Cherem (dart-lang) 2017/05/12 16:48:38 maybe use a Set for constructors2 instead?
Johnni Winther 2017/05/15 07:55:51 Done.
+ "Extra constructor $constructor2 in $cls2");
+ });
+
classes2.add(cls2);
});
env2.forEachClass(lib2, (ClassEntity cls2) {
Expect.isTrue(classes2.contains(cls2), "Extra class $cls2 in $lib2");
});
+
+ List<MemberEntity> members2 = <MemberEntity>[];
Siggi Cherem (dart-lang) 2017/05/12 16:48:38 likewise, use a Set for fast lookup in `contains`?
Johnni Winther 2017/05/15 07:55:51 Done.
+ env1.forEachLibraryMember(lib1, (MemberEntity member1) {
+ Expect.identical(
+ member1,
+ env1.lookupLibraryMember(lib1, member1.name,
+ setter: member1.isSetter));
+
+ String memberName = member1.name;
+ MemberEntity member2 =
+ env2.lookupLibraryMember(lib2, memberName, setter: member1.isSetter);
+ Expect.isNotNull(member2, 'Missing member for $member1 in $lib2');
+ Expect.identical(
+ member2,
+ env2.lookupLibraryMember(lib2, member2.name,
+ setter: member2.isSetter));
+
+ members2.add(member2);
+
+ check(lib1, lib2, 'member:${memberName}', member1, member2,
+ strategy.elementEquivalence);
+
+ checkMembers(member1, member2);
+ });
+ env2.forEachLibraryMember(lib2, (MemberEntity member2) {
+ Expect.isTrue(
+ members2.contains(member2), "Extra member $member2 in $lib2");
+ });
});
// TODO(johnniwinther): Test the remaining properties of [ElementEnvironment].
}
« no previous file with comments | « pkg/compiler/lib/src/resolution/resolution_strategy.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698