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

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

Issue 2345083003: dart2js: run dartfmt on tests (Closed)
Patch Set: revert another multipart test Created 4 years, 3 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 | « tests/compiler/dart2js/map_tracer_test.dart ('k') | tests/compiler/dart2js/memory_compiler.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 10e8859578f3627eb4e3992f59f3e5e4994bc4cb..c058761275ba5e984b2dce66737cb2062bd5f399 100644
--- a/tests/compiler/dart2js/members_test.dart
+++ b/tests/compiler/dart2js/members_test.dart
@@ -8,18 +8,10 @@ import 'package:expect/expect.dart';
import "package:async_helper/async_helper.dart";
import 'type_test_helper.dart';
import 'package:compiler/src/dart_types.dart';
-import "package:compiler/src/elements/elements.dart" show
- Element,
- ClassElement,
- MemberSignature,
- Name,
- PublicName,
- Member;
-import "package:compiler/src/resolution/class_members.dart" show
- MembersCreator,
- DeclaredMember,
- ErroneousMember,
- SyntheticMember;
+import "package:compiler/src/elements/elements.dart"
+ show Element, ClassElement, MemberSignature, Name, PublicName, Member;
+import "package:compiler/src/resolution/class_members.dart"
+ show MembersCreator, DeclaredMember, ErroneousMember, SyntheticMember;
void main() {
testClassMembers();
@@ -30,13 +22,11 @@ void main() {
}
MemberSignature getMember(InterfaceType cls, String name,
- {bool isSetter: false,
- int checkType: CHECK_INTERFACE}) {
- Name memberName =
- new Name(name, cls.element.library, isSetter: isSetter);
+ {bool isSetter: false, int checkType: CHECK_INTERFACE}) {
+ Name memberName = new Name(name, cls.element.library, isSetter: isSetter);
MemberSignature member = checkType == CHECK_CLASS
- ? cls.element.lookupClassMember(memberName)
- : cls.element.lookupInterfaceMember(memberName);
+ ? cls.element.lookupClassMember(memberName)
+ : cls.element.lookupInterfaceMember(memberName);
if (member != null) {
Expect.equals(memberName, member.name);
}
@@ -45,10 +35,13 @@ MemberSignature getMember(InterfaceType cls, String name,
/// Check interface member only.
const int CHECK_INTERFACE = 0;
+
/// Check class member only.
const int CHECK_CLASS = 1;
+
/// Check that there is no class member for the interface member.
const int NO_CLASS_MEMBER = 2;
+
/// Check that the interface member is also a class member.
const int ALSO_CLASS_MEMBER = 3;
@@ -73,18 +66,17 @@ const int ALSO_CLASS_MEMBER = 3;
* If [isClassMember] is `true` it is checked that the member is also a class
* member.
*/
-MemberSignature checkMember(InterfaceType cls,
- String name,
- {bool isStatic: false,
- bool isSetter: false,
- bool isGetter: false,
- InterfaceType declarer,
- DartType type,
- FunctionType functionType,
- InterfaceType inheritedFrom,
- List<InterfaceType> synthesizedFrom,
- List<InterfaceType> erroneousFrom,
- int checkType: ALSO_CLASS_MEMBER}) {
+MemberSignature checkMember(InterfaceType cls, String name,
+ {bool isStatic: false,
+ bool isSetter: false,
+ bool isGetter: false,
+ InterfaceType declarer,
+ DartType type,
+ FunctionType functionType,
+ InterfaceType inheritedFrom,
+ List<InterfaceType> synthesizedFrom,
+ List<InterfaceType> erroneousFrom,
+ int checkType: ALSO_CLASS_MEMBER}) {
String memberKind = checkType == CHECK_CLASS ? 'class' : 'interface';
MemberSignature member =
getMember(cls, name, isSetter: isSetter, checkType: checkType);
@@ -102,20 +94,22 @@ MemberSignature checkMember(InterfaceType cls,
DeclaredMember inherited = checkType == CHECK_CLASS
? inheritedFrom.element.lookupClassMember(memberName)
: inheritedFrom.element.lookupInterfaceMember(memberName);
- Expect.isNotNull(inherited,
- "No $memberKind member '$memberName' in $inheritedFrom.");
+ Expect.isNotNull(
+ inherited, "No $memberKind member '$memberName' in $inheritedFrom.");
Expect.equals(inherited.inheritFrom(inheritedFrom), member);
} else {
if (erroneousFrom != null || synthesizedFrom != null) {
- Expect.notEquals(checkType, CHECK_CLASS,
+ Expect.notEquals(
+ checkType,
+ CHECK_CLASS,
"Arguments 'erroneousFrom' and 'synthesizedFrom' only apply "
"to interface members.");
if (synthesizedFrom != null) {
- Expect.isTrue(member is SyntheticMember,
- "Member '$member' is not synthesized.");
+ Expect.isTrue(
+ member is SyntheticMember, "Member '$member' is not synthesized.");
} else {
- Expect.isTrue(member is ErroneousMember,
- "Member '$member' is not erroneous.");
+ Expect.isTrue(
+ member is ErroneousMember, "Member '$member' is not erroneous.");
}
Set<MemberSignature> members = new Set<MemberSignature>();
List from = synthesizedFrom != null ? synthesizedFrom : erroneousFrom;
@@ -128,7 +122,9 @@ MemberSignature checkMember(InterfaceType cls,
Expect.setEquals(members, member.declarations);
} else if (declarer != null) {
DeclaredMember declared = member;
- Expect.equals(declarer, declared.declarer,
+ Expect.equals(
+ declarer,
+ declared.declarer,
"Unexpected declarer '${declared.declarer}' of $memberKind member "
"'$member'. Expected '${declarer}'.");
} else {
@@ -145,7 +141,7 @@ MemberSignature checkMember(InterfaceType cls,
if (functionType != null) {
if (type == null) {
Expect.equals(member.type, member.functionType,
- "Unexpected type of $memberKind member '$member'.");
+ "Unexpected type of $memberKind member '$member'.");
}
Expect.equals(functionType, member.functionType,
"Unexpected member type of $memberKind member '$member'.");
@@ -155,7 +151,7 @@ MemberSignature checkMember(InterfaceType cls,
}
void checkMemberCount(InterfaceType cls, int expectedCount,
- {bool interfaceMembers: true}) {
+ {bool interfaceMembers: true}) {
int count = 0;
if (interfaceMembers) {
cls.element.forEachInterfaceMember((_) => count++);
@@ -166,7 +162,9 @@ void checkMemberCount(InterfaceType cls, int expectedCount,
}
void testClassMembers() {
- asyncTest(() => TypeEnvironment.create(r"""
+ asyncTest(() => TypeEnvironment
+ .create(
+ r"""
abstract class A {
int field;
final finalField = 0;
@@ -190,181 +188,220 @@ void testClassMembers() {
class C<S> extends B<S> {}
class D extends C<int> {}
class E extends D {}
- """, useMockCompiler: false).then((env) {
-
- InterfaceType bool_ = env['bool'];
- InterfaceType String_ = env['String'];
- InterfaceType num_ = env['num'];
- InterfaceType int_ = env['int'];
- DynamicType dynamic_ = env['dynamic'];
- VoidType void_ = env['void'];
- InterfaceType Type_ = env['Type'];
- InterfaceType Invocation_ = env['Invocation'];
-
- InterfaceType Object_ = env['Object'];
- checkMemberCount(Object_, 5 /*declared*/, interfaceMembers: true);
- checkMemberCount(Object_, 5 /*declared*/, interfaceMembers: false);
-
- checkMember(Object_, '==',
- functionType: env.functionType(bool_, [dynamic_]));
- checkMember(Object_, 'hashCode',
- isGetter: true,
- type: int_, functionType: env.functionType(int_, []));
- checkMember(Object_, 'noSuchMethod',
- functionType: env.functionType(dynamic_, [Invocation_]));
- checkMember(Object_, 'runtimeType',
- isGetter: true,
- type: Type_, functionType: env.functionType(Type_, []));
- checkMember(Object_, 'toString',
- functionType: env.functionType(String_, []));
-
- InterfaceType A = env['A'];
- MembersCreator.computeAllClassMembers(env.resolution, A.element);
-
- checkMemberCount(A, 5 /*inherited*/ + 9 /*non-static declared*/,
- interfaceMembers: true);
- checkMemberCount(A, 5 /*inherited*/ + 9 /*non-abstract declared*/ +
- 3 /* abstract declared */,
- interfaceMembers: false);
-
- checkMember(A, '==', inheritedFrom: Object_);
- checkMember(A, 'hashCode', inheritedFrom: Object_);
- checkMember(A, 'noSuchMethod', inheritedFrom: Object_);
- checkMember(A, 'runtimeType', inheritedFrom: Object_);
- checkMember(A, 'toString', inheritedFrom: Object_);
-
- checkMember(A, 'field', isGetter: true,
- type: int_, functionType: env.functionType(int_, []));
- checkMember(A, 'field', isSetter: true,
- type: int_, functionType: env.functionType(void_, [int_]));
- checkMember(A, 'finalField', isGetter: true,
- type: dynamic_, functionType: env.functionType(dynamic_, []));
- checkMember(A, 'staticField', isGetter: true, isStatic: true,
- checkType: CHECK_CLASS,
- type: dynamic_, functionType: env.functionType(dynamic_, []));
- checkMember(A, 'staticField', isSetter: true, isStatic: true,
- checkType: CHECK_CLASS, type: dynamic_,
- functionType: env.functionType(void_, [dynamic_]));
-
- checkMember(A, 'getter', isGetter: true,
- type: int_, functionType: env.functionType(int_, []));
- checkMember(A, 'abstractGetter', isGetter: true,
- type: dynamic_, functionType: env.functionType(dynamic_, []));
- checkMember(A, 'setter', isSetter: true,
- type: int_, functionType: env.functionType(void_, [int_]));
- checkMember(A, 'abstractSetter', isSetter: true,
- type: dynamic_,
- functionType: env.functionType(dynamic_, [dynamic_]));
-
- checkMember(A, 'method', functionType: env.functionType(dynamic_, []));
- checkMember(A, 'abstractMethod',
- functionType: env.functionType(dynamic_, []));
- checkMember(A, 'staticMethod',
- checkType: CHECK_CLASS,
- isStatic: true, functionType: env.functionType(dynamic_, []));
-
- ClassElement B = env.getElement('B');
- MembersCreator.computeAllClassMembers(env.resolution, B);
- InterfaceType B_this = B.thisType;
- TypeVariableType B_T = B_this.typeArguments.first;
- checkMemberCount(B_this, 4 /*inherited*/ + 4 /*non-static declared*/,
- interfaceMembers: true);
- checkMemberCount(B_this, 4 /*inherited*/ + 5 /*declared*/,
- interfaceMembers: false);
-
- checkMember(B_this, '==', inheritedFrom: Object_);
- checkMember(B_this, 'hashCode', inheritedFrom: Object_);
- checkMember(B_this, 'noSuchMethod', inheritedFrom: Object_);
- checkMember(B_this, 'runtimeType', inheritedFrom: Object_);
-
- checkMember(B_this, 'field', isGetter: true,
- type: B_T, functionType: env.functionType(B_T, []));
- checkMember(B_this, 'field', isSetter: true,
- type: B_T, functionType: env.functionType(void_, [B_T]));
- checkMember(B_this, 'method', functionType: env.functionType(void_, [B_T]));
- checkMember(B_this, 'staticMethod',
- checkType: CHECK_CLASS,
- isStatic: true, functionType: env.functionType(dynamic_, []));
- checkMember(B_this, 'toString',
- functionType: env.functionType(dynamic_, [],
- optionalParameters: [B_T]));
-
- ClassElement C = env.getElement('C');
- MembersCreator.computeAllClassMembers(env.resolution, C);
- InterfaceType C_this = C.thisType;
- TypeVariableType C_S = C_this.typeArguments.first;
- checkMemberCount(C_this, 8 /*inherited*/, interfaceMembers: true);
- checkMemberCount(C_this, 8 /*inherited*/, interfaceMembers: false);
- InterfaceType B_S = instantiate(B, [C_S]);
-
- checkMember(C_this, '==', inheritedFrom: Object_);
- checkMember(C_this, 'hashCode', inheritedFrom: Object_);
- checkMember(C_this, 'noSuchMethod', inheritedFrom: Object_);
- checkMember(C_this, 'runtimeType', inheritedFrom: Object_);
-
- checkMember(C_this, 'field', isGetter: true,
- declarer: B_S,
- type: C_S, functionType: env.functionType(C_S, []));
- checkMember(C_this, 'field', isSetter: true,
- declarer: B_S,
- type: C_S, functionType: env.functionType(void_, [C_S]));
- checkMember(C_this, 'method',
- declarer: B_S,
- functionType: env.functionType(void_, [C_S]));
- checkMember(C_this, 'toString',
- declarer: B_S,
- functionType: env.functionType(dynamic_, [],
- optionalParameters: [C_S]));
-
- InterfaceType D = env['D'];
- MembersCreator.computeAllClassMembers(env.resolution, D.element);
- checkMemberCount(D, 8 /*inherited*/, interfaceMembers: true);
- checkMemberCount(D, 8 /*inherited*/, interfaceMembers: false);
- InterfaceType B_int = instantiate(B, [int_]);
-
- checkMember(D, '==', inheritedFrom: Object_);
- checkMember(D, 'hashCode', inheritedFrom: Object_);
- checkMember(D, 'noSuchMethod', inheritedFrom: Object_);
- checkMember(D, 'runtimeType', inheritedFrom: Object_);
-
- checkMember(D, 'field', isGetter: true,
- declarer: B_int,
- type: int_, functionType: env.functionType(int_, []));
- checkMember(D, 'field', isSetter: true,
- declarer: B_int,
- type: int_, functionType: env.functionType(void_, [int_]));
- checkMember(D, 'method',
- declarer: B_int,
- functionType: env.functionType(void_, [int_]));
- checkMember(D, 'toString',
- declarer: B_int,
- functionType: env.functionType(dynamic_, [],
- optionalParameters: [int_]));
-
- InterfaceType E = env['E'];
- MembersCreator.computeAllClassMembers(env.resolution, E.element);
- checkMemberCount(E, 8 /*inherited*/, interfaceMembers: true);
- checkMemberCount(E, 8 /*inherited*/, interfaceMembers: false);
-
- checkMember(E, '==', inheritedFrom: Object_);
- checkMember(E, 'hashCode', inheritedFrom: Object_);
- checkMember(E, 'noSuchMethod', inheritedFrom: Object_);
- checkMember(E, 'runtimeType', inheritedFrom: Object_);
-
- checkMember(E, 'field', isGetter: true,
- declarer: B_int,
- type: int_, functionType: env.functionType(int_, []));
- checkMember(E, 'field', isSetter: true,
- declarer: B_int,
- type: int_, functionType: env.functionType(void_, [int_]));
- checkMember(E, 'method',
- declarer: B_int,
- functionType: env.functionType(void_, [int_]));
- checkMember(E, 'toString',
- declarer: B_int,
- functionType: env.functionType(dynamic_, [],
- optionalParameters: [int_]));
- }));
+ """,
+ useMockCompiler: false)
+ .then((env) {
+ InterfaceType bool_ = env['bool'];
+ InterfaceType String_ = env['String'];
+ InterfaceType num_ = env['num'];
+ InterfaceType int_ = env['int'];
+ DynamicType dynamic_ = env['dynamic'];
+ VoidType void_ = env['void'];
+ InterfaceType Type_ = env['Type'];
+ InterfaceType Invocation_ = env['Invocation'];
+
+ InterfaceType Object_ = env['Object'];
+ checkMemberCount(Object_, 5 /*declared*/, interfaceMembers: true);
+ checkMemberCount(Object_, 5 /*declared*/, interfaceMembers: false);
+
+ checkMember(Object_, '==',
+ functionType: env.functionType(bool_, [dynamic_]));
+ checkMember(Object_, 'hashCode',
+ isGetter: true,
+ type: int_,
+ functionType: env.functionType(int_, []));
+ checkMember(Object_, 'noSuchMethod',
+ functionType: env.functionType(dynamic_, [Invocation_]));
+ checkMember(Object_, 'runtimeType',
+ isGetter: true,
+ type: Type_,
+ functionType: env.functionType(Type_, []));
+ checkMember(Object_, 'toString',
+ functionType: env.functionType(String_, []));
+
+ InterfaceType A = env['A'];
+ MembersCreator.computeAllClassMembers(env.resolution, A.element);
+
+ checkMemberCount(A, 5 /*inherited*/ + 9 /*non-static declared*/,
+ interfaceMembers: true);
+ checkMemberCount(
+ A,
+ 5 /*inherited*/ +
+ 9 /*non-abstract declared*/ +
+ 3 /* abstract declared */,
+ interfaceMembers: false);
+
+ checkMember(A, '==', inheritedFrom: Object_);
+ checkMember(A, 'hashCode', inheritedFrom: Object_);
+ checkMember(A, 'noSuchMethod', inheritedFrom: Object_);
+ checkMember(A, 'runtimeType', inheritedFrom: Object_);
+ checkMember(A, 'toString', inheritedFrom: Object_);
+
+ checkMember(A, 'field',
+ isGetter: true,
+ type: int_,
+ functionType: env.functionType(int_, []));
+ checkMember(A, 'field',
+ isSetter: true,
+ type: int_,
+ functionType: env.functionType(void_, [int_]));
+ checkMember(A, 'finalField',
+ isGetter: true,
+ type: dynamic_,
+ functionType: env.functionType(dynamic_, []));
+ checkMember(A, 'staticField',
+ isGetter: true,
+ isStatic: true,
+ checkType: CHECK_CLASS,
+ type: dynamic_,
+ functionType: env.functionType(dynamic_, []));
+ checkMember(A, 'staticField',
+ isSetter: true,
+ isStatic: true,
+ checkType: CHECK_CLASS,
+ type: dynamic_,
+ functionType: env.functionType(void_, [dynamic_]));
+
+ checkMember(A, 'getter',
+ isGetter: true,
+ type: int_,
+ functionType: env.functionType(int_, []));
+ checkMember(A, 'abstractGetter',
+ isGetter: true,
+ type: dynamic_,
+ functionType: env.functionType(dynamic_, []));
+ checkMember(A, 'setter',
+ isSetter: true,
+ type: int_,
+ functionType: env.functionType(void_, [int_]));
+ checkMember(A, 'abstractSetter',
+ isSetter: true,
+ type: dynamic_,
+ functionType: env.functionType(dynamic_, [dynamic_]));
+
+ checkMember(A, 'method', functionType: env.functionType(dynamic_, []));
+ checkMember(A, 'abstractMethod',
+ functionType: env.functionType(dynamic_, []));
+ checkMember(A, 'staticMethod',
+ checkType: CHECK_CLASS,
+ isStatic: true,
+ functionType: env.functionType(dynamic_, []));
+
+ ClassElement B = env.getElement('B');
+ MembersCreator.computeAllClassMembers(env.resolution, B);
+ InterfaceType B_this = B.thisType;
+ TypeVariableType B_T = B_this.typeArguments.first;
+ checkMemberCount(B_this, 4 /*inherited*/ + 4 /*non-static declared*/,
+ interfaceMembers: true);
+ checkMemberCount(B_this, 4 /*inherited*/ + 5 /*declared*/,
+ interfaceMembers: false);
+
+ checkMember(B_this, '==', inheritedFrom: Object_);
+ checkMember(B_this, 'hashCode', inheritedFrom: Object_);
+ checkMember(B_this, 'noSuchMethod', inheritedFrom: Object_);
+ checkMember(B_this, 'runtimeType', inheritedFrom: Object_);
+
+ checkMember(B_this, 'field',
+ isGetter: true, type: B_T, functionType: env.functionType(B_T, []));
+ checkMember(B_this, 'field',
+ isSetter: true,
+ type: B_T,
+ functionType: env.functionType(void_, [B_T]));
+ checkMember(B_this, 'method',
+ functionType: env.functionType(void_, [B_T]));
+ checkMember(B_this, 'staticMethod',
+ checkType: CHECK_CLASS,
+ isStatic: true,
+ functionType: env.functionType(dynamic_, []));
+ checkMember(B_this, 'toString',
+ functionType:
+ env.functionType(dynamic_, [], optionalParameters: [B_T]));
+
+ ClassElement C = env.getElement('C');
+ MembersCreator.computeAllClassMembers(env.resolution, C);
+ InterfaceType C_this = C.thisType;
+ TypeVariableType C_S = C_this.typeArguments.first;
+ checkMemberCount(C_this, 8 /*inherited*/, interfaceMembers: true);
+ checkMemberCount(C_this, 8 /*inherited*/, interfaceMembers: false);
+ InterfaceType B_S = instantiate(B, [C_S]);
+
+ checkMember(C_this, '==', inheritedFrom: Object_);
+ checkMember(C_this, 'hashCode', inheritedFrom: Object_);
+ checkMember(C_this, 'noSuchMethod', inheritedFrom: Object_);
+ checkMember(C_this, 'runtimeType', inheritedFrom: Object_);
+
+ checkMember(C_this, 'field',
+ isGetter: true,
+ declarer: B_S,
+ type: C_S,
+ functionType: env.functionType(C_S, []));
+ checkMember(C_this, 'field',
+ isSetter: true,
+ declarer: B_S,
+ type: C_S,
+ functionType: env.functionType(void_, [C_S]));
+ checkMember(C_this, 'method',
+ declarer: B_S, functionType: env.functionType(void_, [C_S]));
+ checkMember(C_this, 'toString',
+ declarer: B_S,
+ functionType:
+ env.functionType(dynamic_, [], optionalParameters: [C_S]));
+
+ InterfaceType D = env['D'];
+ MembersCreator.computeAllClassMembers(env.resolution, D.element);
+ checkMemberCount(D, 8 /*inherited*/, interfaceMembers: true);
+ checkMemberCount(D, 8 /*inherited*/, interfaceMembers: false);
+ InterfaceType B_int = instantiate(B, [int_]);
+
+ checkMember(D, '==', inheritedFrom: Object_);
+ checkMember(D, 'hashCode', inheritedFrom: Object_);
+ checkMember(D, 'noSuchMethod', inheritedFrom: Object_);
+ checkMember(D, 'runtimeType', inheritedFrom: Object_);
+
+ checkMember(D, 'field',
+ isGetter: true,
+ declarer: B_int,
+ type: int_,
+ functionType: env.functionType(int_, []));
+ checkMember(D, 'field',
+ isSetter: true,
+ declarer: B_int,
+ type: int_,
+ functionType: env.functionType(void_, [int_]));
+ checkMember(D, 'method',
+ declarer: B_int, functionType: env.functionType(void_, [int_]));
+ checkMember(D, 'toString',
+ declarer: B_int,
+ functionType:
+ env.functionType(dynamic_, [], optionalParameters: [int_]));
+
+ InterfaceType E = env['E'];
+ MembersCreator.computeAllClassMembers(env.resolution, E.element);
+ checkMemberCount(E, 8 /*inherited*/, interfaceMembers: true);
+ checkMemberCount(E, 8 /*inherited*/, interfaceMembers: false);
+
+ checkMember(E, '==', inheritedFrom: Object_);
+ checkMember(E, 'hashCode', inheritedFrom: Object_);
+ checkMember(E, 'noSuchMethod', inheritedFrom: Object_);
+ checkMember(E, 'runtimeType', inheritedFrom: Object_);
+
+ checkMember(E, 'field',
+ isGetter: true,
+ declarer: B_int,
+ type: int_,
+ functionType: env.functionType(int_, []));
+ checkMember(E, 'field',
+ isSetter: true,
+ declarer: B_int,
+ type: int_,
+ functionType: env.functionType(void_, [int_]));
+ checkMember(E, 'method',
+ declarer: B_int, functionType: env.functionType(void_, [int_]));
+ checkMember(E, 'toString',
+ declarer: B_int,
+ functionType:
+ env.functionType(dynamic_, [], optionalParameters: [int_]));
+ }));
}
void testInterfaceMembers() {
@@ -413,102 +450,99 @@ void testInterfaceMembers() {
}
abstract class D implements A, B, C {}
""").then((env) {
-
- DynamicType dynamic_ = env['dynamic'];
- VoidType void_ = env['void'];
- InterfaceType num_ = env['num'];
- InterfaceType int_ = env['int'];
-
- InterfaceType A = env['A'];
- InterfaceType B = env['B'];
- InterfaceType C = env['C'];
- InterfaceType D = env['D'];
-
- // Ensure that members have been computed on all classes.
- MembersCreator.computeAllClassMembers(env.resolution, D.element);
-
- // A: num method1()
- // B: int method1()
- // D: dynamic method1() -- synthesized from A and B.
- checkMember(D, 'method1',
- synthesizedFrom: [A, B],
- functionType: env.functionType(dynamic_ , []),
- checkType: NO_CLASS_MEMBER);
-
- // A: void method2()
- // B: int method2()
- // D: int method2() -- inherited from B
- checkMember(D, 'method2', inheritedFrom: B, checkType: NO_CLASS_MEMBER);
-
- // A: void method3()
- // B: num method3()
- // C: int method3()
- // D: dynamic method3() -- synthesized from A, B, and C.
- checkMember(D, 'method3',
- synthesizedFrom: [A, B, C],
- functionType: env.functionType(dynamic_ , []),
- checkType: NO_CLASS_MEMBER);
-
- // A: void method4()
- // B: num method4()
- // C: num method4()
- // D: num method4() -- synthesized from B and C.
- checkMember(D, 'method4',
- synthesizedFrom: [B, C],
- functionType: env.functionType(num_, []),
- checkType: NO_CLASS_MEMBER);
-
- // A: method5(a)
- // B: method5([a])
- // D: method5([a]) -- inherited from B
- checkMember(D, 'method5', inheritedFrom: B, checkType: NO_CLASS_MEMBER);
-
- // A: method6(a)
- // B: method6([a, b])
- // D: method6([a, b]) -- inherited from B
- checkMember(D, 'method6', inheritedFrom: B, checkType: NO_CLASS_MEMBER);
-
- // A: method7(a)
- // B: method7(a, [b])
- // D: method7(a, [b]) -- inherited from B
- checkMember(D, 'method7', inheritedFrom: B, checkType: NO_CLASS_MEMBER);
-
- // A: method8(a, b)
- // B: method8([a])
- // D: method8([a, b]) -- synthesized from A and B.
- checkMember(D, 'method8',
- synthesizedFrom: [A, B],
- functionType: env.functionType(
- dynamic_, [], optionalParameters: [dynamic_, dynamic_]),
- checkType: NO_CLASS_MEMBER);
-
- // A: method9(a, b, c)
- // B: method9(a, [b])
- // D: method9(a, [b, c]) -- synthesized from A and B.
- checkMember(D, 'method9',
- synthesizedFrom: [A, B],
- functionType: env.functionType(
- dynamic_, [dynamic_], optionalParameters: [dynamic_, dynamic_]),
- checkType: NO_CLASS_MEMBER);
-
- // A: method10(a, {b, c})
- // B: method10(a, {c, d})
- // D: method10(a, {b, c, d}) -- synthesized from A and B.
- checkMember(D, 'method10',
- synthesizedFrom: [A, B],
- functionType: env.functionType(dynamic_, [dynamic_],
- namedParameters: {'b': dynamic_,
- 'c': dynamic_,
- 'd': dynamic_}),
- checkType: NO_CLASS_MEMBER);
-
- // A: method11(a, {b, c})
- // B: method11(a, b, {c, d})
- // D: method11(a, [b], {c, d}) -- synthesized from A and B.
- // TODO(johnniwinther): Change to check synthesized member when function
- // types with both optional and named parameters are supported.
- Expect.isNull(getMember(D, 'method11'));
- /*checkMember(D, 'method11',
+ DynamicType dynamic_ = env['dynamic'];
+ VoidType void_ = env['void'];
+ InterfaceType num_ = env['num'];
+ InterfaceType int_ = env['int'];
+
+ InterfaceType A = env['A'];
+ InterfaceType B = env['B'];
+ InterfaceType C = env['C'];
+ InterfaceType D = env['D'];
+
+ // Ensure that members have been computed on all classes.
+ MembersCreator.computeAllClassMembers(env.resolution, D.element);
+
+ // A: num method1()
+ // B: int method1()
+ // D: dynamic method1() -- synthesized from A and B.
+ checkMember(D, 'method1',
+ synthesizedFrom: [A, B],
+ functionType: env.functionType(dynamic_, []),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: void method2()
+ // B: int method2()
+ // D: int method2() -- inherited from B
+ checkMember(D, 'method2', inheritedFrom: B, checkType: NO_CLASS_MEMBER);
+
+ // A: void method3()
+ // B: num method3()
+ // C: int method3()
+ // D: dynamic method3() -- synthesized from A, B, and C.
+ checkMember(D, 'method3',
+ synthesizedFrom: [A, B, C],
+ functionType: env.functionType(dynamic_, []),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: void method4()
+ // B: num method4()
+ // C: num method4()
+ // D: num method4() -- synthesized from B and C.
+ checkMember(D, 'method4',
+ synthesizedFrom: [B, C],
+ functionType: env.functionType(num_, []),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: method5(a)
+ // B: method5([a])
+ // D: method5([a]) -- inherited from B
+ checkMember(D, 'method5', inheritedFrom: B, checkType: NO_CLASS_MEMBER);
+
+ // A: method6(a)
+ // B: method6([a, b])
+ // D: method6([a, b]) -- inherited from B
+ checkMember(D, 'method6', inheritedFrom: B, checkType: NO_CLASS_MEMBER);
+
+ // A: method7(a)
+ // B: method7(a, [b])
+ // D: method7(a, [b]) -- inherited from B
+ checkMember(D, 'method7', inheritedFrom: B, checkType: NO_CLASS_MEMBER);
+
+ // A: method8(a, b)
+ // B: method8([a])
+ // D: method8([a, b]) -- synthesized from A and B.
+ checkMember(D, 'method8',
+ synthesizedFrom: [A, B],
+ functionType: env.functionType(dynamic_, [],
+ optionalParameters: [dynamic_, dynamic_]),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: method9(a, b, c)
+ // B: method9(a, [b])
+ // D: method9(a, [b, c]) -- synthesized from A and B.
+ checkMember(D, 'method9',
+ synthesizedFrom: [A, B],
+ functionType: env.functionType(dynamic_, [dynamic_],
+ optionalParameters: [dynamic_, dynamic_]),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: method10(a, {b, c})
+ // B: method10(a, {c, d})
+ // D: method10(a, {b, c, d}) -- synthesized from A and B.
+ checkMember(D, 'method10',
+ synthesizedFrom: [A, B],
+ functionType: env.functionType(dynamic_, [dynamic_],
+ namedParameters: {'b': dynamic_, 'c': dynamic_, 'd': dynamic_}),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: method11(a, {b, c})
+ // B: method11(a, b, {c, d})
+ // D: method11(a, [b], {c, d}) -- synthesized from A and B.
+ // TODO(johnniwinther): Change to check synthesized member when function
+ // types with both optional and named parameters are supported.
+ Expect.isNull(getMember(D, 'method11'));
+ /*checkMember(D, 'method11',
synthesizedFrom: [A, B],
functionType: env.functionType(dynamic_, [dynamic_],
optionalParameters: [dynamic_],
@@ -516,58 +550,62 @@ void testInterfaceMembers() {
'd': dynamic_,}),
checkType: NO_CLASS_MEMBER);*/
- // A: num get getter1
- // B: num get getter1
- // D: num get getter1 -- synthesized from A and B.
- checkMember(D, 'getter1',
- isGetter: true,
- synthesizedFrom: [A, B], type: num_,
- functionType: env.functionType(num_ , []),
- checkType: NO_CLASS_MEMBER);
-
- // A: num get getter2
- // B: int get getter2
- // D: dynamic get getter2 -- synthesized from A and B.
- checkMember(D, 'getter2',
- isGetter: true,
- synthesizedFrom: [A, B], type: dynamic_,
- functionType: env.functionType(dynamic_ , []),
- checkType: NO_CLASS_MEMBER);
-
- // A: void set setter1(num _)
- // B: void set setter1(num _)
- // D: void set setter1(num _) -- synthesized from A and B.
- checkMember(D, 'setter1',
- isSetter: true,
- synthesizedFrom: [A, B], type: num_,
- functionType: env.functionType(void_ , [num_]),
- checkType: NO_CLASS_MEMBER);
-
- // A: void set setter2(num _)
- // B: set setter2(num _)
- // D: dynamic set setter2(dynamic _) -- synthesized from A and B.
- checkMember(D, 'setter2',
- isSetter: true,
- synthesizedFrom: [A, B], type: dynamic_,
- functionType: env.functionType(dynamic_ , [dynamic_]),
- checkType: NO_CLASS_MEMBER);
-
- // A: void set setter3(num _)
- // B: void set setter3(int _)
- // D: dynamic set setter3(dynamic _) -- synthesized from A and B.
- checkMember(D, 'setter3',
- isSetter: true,
- synthesizedFrom: [A, B], type: dynamic_,
- functionType: env.functionType(dynamic_ , [dynamic_]),
- checkType: NO_CLASS_MEMBER);
-
- // A: get getterAndMethod
- // B: getterAndMethod()
- // D: nothing inherited
- checkMember(D, 'getterAndMethod',
- erroneousFrom: [A, B],
- checkType: NO_CLASS_MEMBER);
- }));
+ // A: num get getter1
+ // B: num get getter1
+ // D: num get getter1 -- synthesized from A and B.
+ checkMember(D, 'getter1',
+ isGetter: true,
+ synthesizedFrom: [A, B],
+ type: num_,
+ functionType: env.functionType(num_, []),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: num get getter2
+ // B: int get getter2
+ // D: dynamic get getter2 -- synthesized from A and B.
+ checkMember(D, 'getter2',
+ isGetter: true,
+ synthesizedFrom: [A, B],
+ type: dynamic_,
+ functionType: env.functionType(dynamic_, []),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: void set setter1(num _)
+ // B: void set setter1(num _)
+ // D: void set setter1(num _) -- synthesized from A and B.
+ checkMember(D, 'setter1',
+ isSetter: true,
+ synthesizedFrom: [A, B],
+ type: num_,
+ functionType: env.functionType(void_, [num_]),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: void set setter2(num _)
+ // B: set setter2(num _)
+ // D: dynamic set setter2(dynamic _) -- synthesized from A and B.
+ checkMember(D, 'setter2',
+ isSetter: true,
+ synthesizedFrom: [A, B],
+ type: dynamic_,
+ functionType: env.functionType(dynamic_, [dynamic_]),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: void set setter3(num _)
+ // B: void set setter3(int _)
+ // D: dynamic set setter3(dynamic _) -- synthesized from A and B.
+ checkMember(D, 'setter3',
+ isSetter: true,
+ synthesizedFrom: [A, B],
+ type: dynamic_,
+ functionType: env.functionType(dynamic_, [dynamic_]),
+ checkType: NO_CLASS_MEMBER);
+
+ // A: get getterAndMethod
+ // B: getterAndMethod()
+ // D: nothing inherited
+ checkMember(D, 'getterAndMethod',
+ erroneousFrom: [A, B], checkType: NO_CLASS_MEMBER);
+ }));
}
void testClassVsInterfaceMembers() {
@@ -582,47 +620,45 @@ void testClassVsInterfaceMembers() {
}
abstract class C extends A implements B {}
""").then((env) {
-
- DynamicType dynamic_ = env['dynamic'];
- VoidType void_ = env['void'];
- InterfaceType num_ = env['num'];
- InterfaceType int_ = env['int'];
-
- InterfaceType A = env['A'];
- InterfaceType B = env['B'];
- InterfaceType C = env['C'];
-
- // Ensure that members have been computed on all classes.
- MembersCreator.computeAllClassMembers(env.resolution, C.element);
-
- // A: method1()
- // B: method1()
- // C class: method1() -- inherited from A.
- // C interface: dynamic method1() -- synthesized from A and B.
- MemberSignature interfaceMember =
- checkMember(C, 'method1', checkType: CHECK_INTERFACE,
- synthesizedFrom: [A, B],
- functionType: env.functionType(dynamic_ , []));
- MemberSignature classMember =
- checkMember(C, 'method1', checkType: CHECK_CLASS, inheritedFrom: A);
- Expect.notEquals(interfaceMember, classMember);
-
- // A: method2()
- // B: method2(a)
- // C class: method2() -- inherited from A.
- // C interface: dynamic method2([a]) -- synthesized from A and B.
- interfaceMember =
- checkMember(C, 'method2', checkType: CHECK_INTERFACE,
- synthesizedFrom: [A, B],
- functionType: env.functionType(dynamic_ , [],
- optionalParameters: [dynamic_]));
- classMember =
- checkMember(C, 'method2', checkType: CHECK_CLASS, inheritedFrom: A);
- Expect.notEquals(interfaceMember, classMember);
- }));
+ DynamicType dynamic_ = env['dynamic'];
+ VoidType void_ = env['void'];
+ InterfaceType num_ = env['num'];
+ InterfaceType int_ = env['int'];
+
+ InterfaceType A = env['A'];
+ InterfaceType B = env['B'];
+ InterfaceType C = env['C'];
+
+ // Ensure that members have been computed on all classes.
+ MembersCreator.computeAllClassMembers(env.resolution, C.element);
+
+ // A: method1()
+ // B: method1()
+ // C class: method1() -- inherited from A.
+ // C interface: dynamic method1() -- synthesized from A and B.
+ MemberSignature interfaceMember = checkMember(C, 'method1',
+ checkType: CHECK_INTERFACE,
+ synthesizedFrom: [A, B],
+ functionType: env.functionType(dynamic_, []));
+ MemberSignature classMember =
+ checkMember(C, 'method1', checkType: CHECK_CLASS, inheritedFrom: A);
+ Expect.notEquals(interfaceMember, classMember);
+
+ // A: method2()
+ // B: method2(a)
+ // C class: method2() -- inherited from A.
+ // C interface: dynamic method2([a]) -- synthesized from A and B.
+ interfaceMember = checkMember(C, 'method2',
+ checkType: CHECK_INTERFACE,
+ synthesizedFrom: [A, B],
+ functionType:
+ env.functionType(dynamic_, [], optionalParameters: [dynamic_]));
+ classMember =
+ checkMember(C, 'method2', checkType: CHECK_CLASS, inheritedFrom: A);
+ Expect.notEquals(interfaceMember, classMember);
+ }));
}
-
void testMixinMembers() {
asyncTest(() => TypeEnvironment.create(r"""
class A<T> {
@@ -638,71 +674,67 @@ void testMixinMembers() {
}
abstract class C<U, V> extends Object with A<U> implements B<V> {}
""").then((env) {
-
- DynamicType dynamic_ = env['dynamic'];
- VoidType void_ = env['void'];
- InterfaceType num_ = env['num'];
- InterfaceType int_ = env['int'];
-
- ClassElement A = env.getElement('A');
- ClassElement B = env.getElement('B');
- ClassElement C = env.getElement('C');
- InterfaceType C_this = C.thisType;
- TypeVariableType C_U = C_this.typeArguments[0];
- TypeVariableType C_V = C_this.typeArguments[1];
- 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.resolution, C);
-
- // A: method1()
- // B: method1()
- // C class: method1() -- inherited from A.
- // C interface: dynamic method1() -- synthesized from A and B.
- MemberSignature interfaceMember =
- checkMember(C_this, 'method1', checkType: CHECK_INTERFACE,
- synthesizedFrom: [A_U, B_V],
- functionType: env.functionType(dynamic_ , []));
- MemberSignature classMember =
- checkMember(C_this, 'method1', checkType: CHECK_CLASS,
- inheritedFrom: A_U);
- Expect.notEquals(interfaceMember, classMember);
-
- // A: method2()
- // B: method2(a)
- // C class: method2() -- inherited from A.
- // C interface: dynamic method2([a]) -- synthesized from A and B.
- interfaceMember =
- checkMember(C_this, 'method2', checkType: CHECK_INTERFACE,
- synthesizedFrom: [A_U, B_V],
- functionType: env.functionType(dynamic_ , [],
- optionalParameters: [dynamic_]));
- classMember =
- checkMember(C_this, 'method2', checkType: CHECK_CLASS,
- inheritedFrom: A_U);
- Expect.notEquals(interfaceMember, classMember);
-
- // A: method3(U a)
- // B: method3(V a)
- // C class: method3(U a) -- inherited from A.
- // C interface: dynamic method3(a) -- synthesized from A and B.
- interfaceMember =
- checkMember(C_this, 'method3', checkType: CHECK_INTERFACE,
- synthesizedFrom: [A_U, B_V],
- functionType: env.functionType(dynamic_ , [dynamic_]));
- classMember =
- checkMember(C_this, 'method3', checkType: CHECK_CLASS,
- inheritedFrom: A_U);
- Expect.notEquals(interfaceMember, classMember);
-
- // A: method4(U a)
- // B: --
- // C class: method4(U a) -- inherited from A.
- // C interface: method4(U a) -- inherited from A.
- checkMember(C_this, 'method4', checkType: ALSO_CLASS_MEMBER,
- inheritedFrom: A_U);
- }));
+ DynamicType dynamic_ = env['dynamic'];
+ VoidType void_ = env['void'];
+ InterfaceType num_ = env['num'];
+ InterfaceType int_ = env['int'];
+
+ ClassElement A = env.getElement('A');
+ ClassElement B = env.getElement('B');
+ ClassElement C = env.getElement('C');
+ InterfaceType C_this = C.thisType;
+ TypeVariableType C_U = C_this.typeArguments[0];
+ TypeVariableType C_V = C_this.typeArguments[1];
+ 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.resolution, C);
+
+ // A: method1()
+ // B: method1()
+ // C class: method1() -- inherited from A.
+ // C interface: dynamic method1() -- synthesized from A and B.
+ MemberSignature interfaceMember = checkMember(C_this, 'method1',
+ checkType: CHECK_INTERFACE,
+ synthesizedFrom: [A_U, B_V],
+ functionType: env.functionType(dynamic_, []));
+ MemberSignature classMember = checkMember(C_this, 'method1',
+ checkType: CHECK_CLASS, inheritedFrom: A_U);
+ Expect.notEquals(interfaceMember, classMember);
+
+ // A: method2()
+ // B: method2(a)
+ // C class: method2() -- inherited from A.
+ // C interface: dynamic method2([a]) -- synthesized from A and B.
+ interfaceMember = checkMember(C_this, 'method2',
+ checkType: CHECK_INTERFACE,
+ synthesizedFrom: [A_U, B_V],
+ functionType:
+ env.functionType(dynamic_, [], optionalParameters: [dynamic_]));
+ classMember = checkMember(C_this, 'method2',
+ checkType: CHECK_CLASS, inheritedFrom: A_U);
+ Expect.notEquals(interfaceMember, classMember);
+
+ // A: method3(U a)
+ // B: method3(V a)
+ // C class: method3(U a) -- inherited from A.
+ // C interface: dynamic method3(a) -- synthesized from A and B.
+ interfaceMember = checkMember(C_this, 'method3',
+ checkType: CHECK_INTERFACE,
+ synthesizedFrom: [A_U, B_V],
+ functionType: env.functionType(dynamic_, [dynamic_]));
+ classMember = checkMember(C_this, 'method3',
+ checkType: CHECK_CLASS, inheritedFrom: A_U);
+ Expect.notEquals(interfaceMember, classMember);
+
+ // A: method4(U a)
+ // B: --
+ // C class: method4(U a) -- inherited from A.
+ // C interface: method4(U a) -- inherited from A.
+ checkMember(C_this, 'method4',
+ checkType: ALSO_CLASS_MEMBER, inheritedFrom: A_U);
+ }));
}
void testMixinMembersWithoutImplements() {
@@ -714,21 +746,21 @@ void testMixinMembersWithoutImplements() {
}
abstract class C extends Object with B {}
""").then((env) {
-
- DynamicType dynamic_ = env['dynamic'];
- VoidType void_ = env['void'];
- InterfaceType num_ = env['num'];
- InterfaceType int_ = env['int'];
-
- InterfaceType A = env['A'];
- InterfaceType B = env['B'];
- InterfaceType C = env['C'];
-
- // Ensure that members have been computed on all classes.
- MembersCreator.computeAllClassMembers(env.resolution, C.element);
-
- checkMember(C, 'm', checkType: NO_CLASS_MEMBER,
- inheritedFrom: A,
- functionType: env.functionType(dynamic_ , []));
- }));
-}
+ DynamicType dynamic_ = env['dynamic'];
+ VoidType void_ = env['void'];
+ InterfaceType num_ = env['num'];
+ InterfaceType int_ = env['int'];
+
+ InterfaceType A = env['A'];
+ InterfaceType B = env['B'];
+ InterfaceType C = env['C'];
+
+ // Ensure that members have been computed on all classes.
+ MembersCreator.computeAllClassMembers(env.resolution, C.element);
+
+ checkMember(C, 'm',
+ checkType: NO_CLASS_MEMBER,
+ inheritedFrom: A,
+ functionType: env.functionType(dynamic_, []));
+ }));
+}
« no previous file with comments | « tests/compiler/dart2js/map_tracer_test.dart ('k') | tests/compiler/dart2js/memory_compiler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698