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

Unified Diff: tests/compiler/dart2js/members_test.dart

Issue 1413613010: Normalize type masks to use the least upper instantiated subclass/type. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix try/poi Created 5 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 | « pkg/compiler/lib/src/world.dart ('k') | tests/compiler/dart2js/mock_libraries.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/members_test.dart
diff --git a/tests/compiler/dart2js/members_test.dart b/tests/compiler/dart2js/members_test.dart
index d4be7ab42b24fb378c34e9526b33ea81e2d4d37d..59dbf971d91a2bc5194b5347a40576ae3efeb525 100644
--- a/tests/compiler/dart2js/members_test.dart
+++ b/tests/compiler/dart2js/members_test.dart
@@ -12,7 +12,7 @@ import "package:compiler/src/elements/elements.dart"
show Element, ClassElement, MemberSignature, Name, PublicName,
DeclaredMember, Member;
import "package:compiler/src/resolution/class_members.dart"
- show DeclaredMember, ErroneousMember, SyntheticMember;
+ show MembersCreator, DeclaredMember, ErroneousMember, SyntheticMember;
void main() {
testClassMembers();
@@ -212,6 +212,8 @@ void testClassMembers() {
functionType: env.functionType(String_, []));
InterfaceType A = env['A'];
+ MembersCreator.computeAllClassMembers(env.compiler, A.element);
+
checkMemberCount(A, 5 /*inherited*/ + 9 /*non-static declared*/,
interfaceMembers: true);
checkMemberCount(A, 5 /*inherited*/ + 9 /*non-abstract declared*/ +
@@ -255,6 +257,7 @@ void testClassMembers() {
isStatic: true, functionType: env.functionType(dynamic_, []));
ClassElement B = env.getElement('B');
+ MembersCreator.computeAllClassMembers(env.compiler, B);
InterfaceType B_this = B.thisType;
TypeVariableType B_T = B_this.typeArguments.first;
checkMemberCount(B_this, 4 /*inherited*/ + 4 /*non-static declared*/,
@@ -280,6 +283,7 @@ void testClassMembers() {
optionalParameters: [B_T]));
ClassElement C = env.getElement('C');
+ MembersCreator.computeAllClassMembers(env.compiler, C);
InterfaceType C_this = C.thisType;
TypeVariableType C_S = C_this.typeArguments.first;
checkMemberCount(C_this, 8 /*inherited*/, interfaceMembers: true);
@@ -306,6 +310,7 @@ void testClassMembers() {
optionalParameters: [C_S]));
InterfaceType D = env['D'];
+ MembersCreator.computeAllClassMembers(env.compiler, D.element);
checkMemberCount(D, 8 /*inherited*/, interfaceMembers: true);
checkMemberCount(D, 8 /*inherited*/, interfaceMembers: false);
InterfaceType B_int = instantiate(B, [int_]);
@@ -330,6 +335,7 @@ void testClassMembers() {
optionalParameters: [int_]));
InterfaceType E = env['E'];
+ MembersCreator.computeAllClassMembers(env.compiler, E.element);
checkMemberCount(E, 8 /*inherited*/, interfaceMembers: true);
checkMemberCount(E, 8 /*inherited*/, interfaceMembers: false);
@@ -411,6 +417,9 @@ void testInterfaceMembers() {
InterfaceType C = env['C'];
InterfaceType D = env['D'];
+ // Ensure that members have been computed on all classes.
+ MembersCreator.computeAllClassMembers(env.compiler, D.element);
+
// A: num method1()
// B: int method1()
// D: dynamic method1() -- synthesized from A and B.
@@ -576,6 +585,9 @@ void testClassVsInterfaceMembers() {
InterfaceType B = env['B'];
InterfaceType C = env['C'];
+ // Ensure that members have been computed on all classes.
+ MembersCreator.computeAllClassMembers(env.compiler, C.element);
+
// A: method1()
// B: method1()
// C class: method1() -- inherited from A.
@@ -634,6 +646,9 @@ void testMixinMembers() {
InterfaceType A_U = instantiate(A, [C_U]);
InterfaceType B_V = instantiate(B, [C_V]);
+ // Ensure that members have been computed on all classes.
+ MembersCreator.computeAllClassMembers(env.compiler, C);
+
// A: method1()
// B: method1()
// C class: method1() -- inherited from A.
@@ -702,6 +717,9 @@ void testMixinMembersWithoutImplements() {
InterfaceType B = env['B'];
InterfaceType C = env['C'];
+ // Ensure that members have been computed on all classes.
+ MembersCreator.computeAllClassMembers(env.compiler, C.element);
+
checkMember(C, 'm', checkType: NO_CLASS_MEMBER,
inheritedFrom: A,
functionType: env.functionType(dynamic_ , []));
« no previous file with comments | « pkg/compiler/lib/src/world.dart ('k') | tests/compiler/dart2js/mock_libraries.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698