| Index: tests/compiler/dart2js/needs_no_such_method_test.dart
|
| diff --git a/tests/compiler/dart2js/needs_no_such_method_test.dart b/tests/compiler/dart2js/needs_no_such_method_test.dart
|
| index 892087e6db5501d61400bc092084c3bc112c19d7..3dadbb7f6949ec0295d303e66d1918d670355150 100644
|
| --- a/tests/compiler/dart2js/needs_no_such_method_test.dart
|
| +++ b/tests/compiler/dart2js/needs_no_such_method_test.dart
|
| @@ -35,7 +35,6 @@ testClassSets() async {
|
| Selector foo, bar, baz;
|
| ClosedWorld closedWorld;
|
| ClassElement superclass, subclass, subtype;
|
| - String testMode;
|
|
|
| Future run(List<String> instantiated) async {
|
| StringBuffer main = new StringBuffer();
|
| @@ -44,7 +43,6 @@ testClassSets() async {
|
| main.write('new $cls();');
|
| }
|
| main.write('}');
|
| - testMode = '$instantiated';
|
|
|
| var env = await TypeEnvironment.create(CLASSES,
|
| mainSource: main.toString(), useMockCompiler: false);
|
| @@ -61,11 +59,8 @@ testClassSets() async {
|
| void check(ClassElement cls, ClassQuery query, Selector selector,
|
| bool expectedResult) {
|
| bool result = closedWorld.needsNoSuchMethod(cls, selector, query);
|
| - Expect.equals(
|
| - expectedResult,
|
| - result,
|
| - 'Unexpected result for $selector in $cls ($query)'
|
| - 'for instantiations $testMode');
|
| + Expect.equals(expectedResult, result,
|
| + 'Unexpected result for $selector in $cls ($query)');
|
| }
|
|
|
| await run([]);
|
| @@ -171,13 +166,17 @@ testClassSets() async {
|
| Expect.isFalse(closedWorld.isImplemented(subtype));
|
|
|
| check(superclass, ClassQuery.EXACT, foo, false);
|
| - check(superclass, ClassQuery.EXACT, bar, false);
|
| - check(superclass, ClassQuery.EXACT, baz, false);
|
| + // Should be false since the class is not directly instantiated:
|
| + check(superclass, ClassQuery.EXACT, bar, true);
|
| + // Should be false since the class is not directly instantiated:
|
| + check(superclass, ClassQuery.EXACT, baz, true);
|
| check(superclass, ClassQuery.SUBCLASS, foo, false);
|
| - check(superclass, ClassQuery.SUBCLASS, bar, false);
|
| + // Should be false since all live subclasses have a concrete implementation:
|
| + check(superclass, ClassQuery.SUBCLASS, bar, true);
|
| check(superclass, ClassQuery.SUBCLASS, baz, true);
|
| check(superclass, ClassQuery.SUBTYPE, foo, false);
|
| - check(superclass, ClassQuery.SUBTYPE, bar, false);
|
| + // Should be false since all live subtypes have a concrete implementation:
|
| + check(superclass, ClassQuery.SUBTYPE, bar, true);
|
| check(superclass, ClassQuery.SUBTYPE, baz, true);
|
|
|
| check(subclass, ClassQuery.EXACT, foo, false);
|
| @@ -259,13 +258,17 @@ testClassSets() async {
|
| Expect.isTrue(closedWorld.isImplemented(subtype));
|
|
|
| check(superclass, ClassQuery.EXACT, foo, false);
|
| - check(superclass, ClassQuery.EXACT, bar, false);
|
| - check(superclass, ClassQuery.EXACT, baz, false);
|
| + // Should be false since the class is not directly instantiated:
|
| + check(superclass, ClassQuery.EXACT, bar, true);
|
| + // Should be false since the class is not directly instantiated:
|
| + check(superclass, ClassQuery.EXACT, baz, true);
|
| check(superclass, ClassQuery.SUBCLASS, foo, false);
|
| - check(superclass, ClassQuery.SUBCLASS, bar, false);
|
| + // Should be false since all live subclasses have a concrete implementation:
|
| + check(superclass, ClassQuery.SUBCLASS, bar, true);
|
| check(superclass, ClassQuery.SUBCLASS, baz, true);
|
| check(superclass, ClassQuery.SUBTYPE, foo, true);
|
| - check(superclass, ClassQuery.SUBTYPE, bar, false);
|
| + // Should be false since all live subtypes have a concrete implementation:
|
| + check(superclass, ClassQuery.SUBTYPE, bar, true);
|
| check(superclass, ClassQuery.SUBTYPE, baz, true);
|
|
|
| check(subclass, ClassQuery.EXACT, foo, false);
|
|
|