Chromium Code Reviews| Index: pkg/analyzer/test/src/task/strong/checker_test.dart |
| diff --git a/pkg/analyzer/test/src/task/strong/checker_test.dart b/pkg/analyzer/test/src/task/strong/checker_test.dart |
| index 6b1282159d96edcea53843f91b41dbd817d2b62a..2d9475398bf1b3b6264ed3318a2521755977f1bc 100644 |
| --- a/pkg/analyzer/test/src/task/strong/checker_test.dart |
| +++ b/pkg/analyzer/test/src/task/strong/checker_test.dart |
| @@ -2,9 +2,6 @@ |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| -// TODO(jmesserly): this file needs to be refactored, it's a port from |
| -// package:dev_compiler's tests |
| -/// General type checking tests |
| library analyzer.test.src.task.strong.checker_test; |
| import '../../../reflective_tests.dart'; |
| @@ -22,7 +19,7 @@ class CheckerTest { |
| import 'dart:async'; |
| main() async { |
| // Don't choke if sequence is not stream. |
| - await for (var i in /*warning:FOR_IN_OF_INVALID_TYPE*/1234) {} |
| + await for (var i in /*severe:FOR_IN_OF_INVALID_TYPE*/1234) {} |
| // Dynamic cast. |
| await for (String /*info:DYNAMIC_CAST*/s in new Stream<dynamic>()) {} |
| @@ -86,7 +83,7 @@ test() { |
| a = a + b; |
| a = a + /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/a; |
| a = a - b; |
| - b = /*warning:INVALID_ASSIGNMENT*/b - b; |
| + b = /*severe:INVALID_ASSIGNMENT*/b - b; |
| a = a << b; |
| a = a >> b; |
| a = a & b; |
| @@ -105,7 +102,7 @@ test() { |
| p = p && /*info:DYNAMIC_CAST*/c; |
| p = (/*info:DYNAMIC_CAST*/c) && p; |
| p = (/*info:DYNAMIC_CAST*/c) && /*info:DYNAMIC_CAST*/c; |
| - p = /*warning:NON_BOOL_OPERAND*/y && p; |
| + p = /*severe:NON_BOOL_OPERAND*/y && p; |
| p = c == y; |
| a = a[b]; |
| @@ -299,7 +296,7 @@ test() { |
| a += b; |
| a += /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/a; |
| a -= b; |
| - /*severe:STATIC_TYPE_ERROR*/b -= /*warning:INVALID_ASSIGNMENT*/b; |
| + /*severe:STATIC_TYPE_ERROR*/b -= /*severe:INVALID_ASSIGNMENT*/b; |
| a <<= b; |
| a >>= b; |
| a &= b; |
| @@ -447,8 +444,8 @@ void main() { |
| int x; |
| double y; |
| x = f(3); |
| - x = /*warning:INVALID_ASSIGNMENT*/f.col(3.0); |
| - y = /*warning:INVALID_ASSIGNMENT*/f(3); |
| + x = /*severe:INVALID_ASSIGNMENT*/f.col(3.0); |
| + y = /*severe:INVALID_ASSIGNMENT*/f(3); |
| y = f.col(3.0); |
| f(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3.0); |
| f.col(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3); |
| @@ -483,7 +480,7 @@ void main() { |
| A f = new B(); |
| /*info:DYNAMIC_INVOKE*/f.col(42.0); |
| /*info:DYNAMIC_INVOKE*/f.foo(42.0); |
| - /*info:DYNAMIC_INVOKE*/f./*warning:UNDEFINED_GETTER*/x; |
| + /*info:DYNAMIC_INVOKE*/f./*severe:UNDEFINED_GETTER*/x; |
| } |
| } |
| '''); |
| @@ -630,7 +627,7 @@ class Child2 implements Base { |
| checkFile(''' |
| main() { |
| // Don't choke if sequence is not iterable. |
| - for (var i in /*warning:FOR_IN_OF_INVALID_TYPE*/1234) {} |
| + for (var i in /*severe:FOR_IN_OF_INVALID_TYPE*/1234) {} |
| // Dynamic cast. |
| for (String /*info:DYNAMIC_CAST*/s in <dynamic>[]) {} |
| @@ -663,7 +660,7 @@ main() { |
| checkFile(''' |
| foo() { |
| for (int i = 0; i < 10; i++) { |
| - i = /*warning:INVALID_ASSIGNMENT*/"hi"; |
| + i = /*severe:INVALID_ASSIGNMENT*/"hi"; |
| } |
| } |
| bar() { |
| @@ -686,14 +683,14 @@ Future foo2() async => x; |
| Future<int> foo3() async => /*info:DYNAMIC_CAST*/x; |
| Future<int> foo4() async => new Future<int>.value(/*info:DYNAMIC_CAST*/x); |
| Future<int> foo5() async => |
| - /*warning:RETURN_OF_INVALID_TYPE*/new Future<String>.value(/*info:DYNAMIC_CAST*/x); |
| + /*severe:RETURN_OF_INVALID_TYPE*/new Future<String>.value(/*info:DYNAMIC_CAST*/x); |
| bar1() async { return x; } |
| Future bar2() async { return x; } |
| Future<int> bar3() async { return /*info:DYNAMIC_CAST*/x; } |
| Future<int> bar4() async { return new Future<int>.value(/*info:DYNAMIC_CAST*/x); } |
| Future<int> bar5() async { |
| - return /*warning:RETURN_OF_INVALID_TYPE*/new Future<String>.value(/*info:DYNAMIC_CAST*/x); |
| + return /*severe:RETURN_OF_INVALID_TYPE*/new Future<String>.value(/*info:DYNAMIC_CAST*/x); |
| } |
| int y; |
| @@ -703,7 +700,7 @@ baz() async { |
| int a = /*info:DYNAMIC_CAST*/await x; |
| int b = await y; |
| int c = await z; |
| - String d = /*warning:INVALID_ASSIGNMENT*/await z; |
| + String d = /*severe:INVALID_ASSIGNMENT*/await z; |
| } |
| Future<bool> get issue_264 async { |
| @@ -726,7 +723,7 @@ dynamic x; |
| bar1() async* { yield x; } |
| Stream bar2() async* { yield x; } |
| Stream<int> bar3() async* { yield /*info:DYNAMIC_CAST*/x; } |
| -Stream<int> bar4() async* { yield /*warning:YIELD_OF_INVALID_TYPE*/new Stream<int>(); } |
| +Stream<int> bar4() async* { yield /*severe:YIELD_OF_INVALID_TYPE*/new Stream<int>(); } |
| baz1() async* { yield* /*info:DYNAMIC_CAST*/x; } |
| Stream baz2() async* { yield* /*info:DYNAMIC_CAST*/x; } |
| @@ -743,7 +740,7 @@ dynamic x; |
| bar1() sync* { yield x; } |
| Iterable bar2() sync* { yield x; } |
| Iterable<int> bar3() sync* { yield /*info:DYNAMIC_CAST*/x; } |
| -Iterable<int> bar4() sync* { yield /*warning:YIELD_OF_INVALID_TYPE*/bar3(); } |
| +Iterable<int> bar4() sync* { yield /*severe:YIELD_OF_INVALID_TYPE*/bar3(); } |
| baz1() sync* { yield* /*info:DYNAMIC_CAST*/x; } |
| Iterable baz2() sync* { yield* /*info:DYNAMIC_CAST*/x; } |
| @@ -1502,91 +1499,91 @@ void main() { |
| r = r; |
| r = o; |
| - r = /*warning:INVALID_ASSIGNMENT*/n; |
| - r = /*warning:INVALID_ASSIGNMENT*/rr; |
| + r = /*severe:INVALID_ASSIGNMENT*/n; |
| + r = /*severe:INVALID_ASSIGNMENT*/rr; |
| r = ro; |
| r = rn; |
| r = oo; |
| - r = /*warning:INVALID_ASSIGNMENT*/nn; |
| - r = /*warning:INVALID_ASSIGNMENT*/nnn; |
| + r = /*severe:INVALID_ASSIGNMENT*/nn; |
| + r = /*severe:INVALID_ASSIGNMENT*/nnn; |
| o = /*warning:DOWN_CAST_COMPOSITE*/r; |
| o = o; |
| - o = /*warning:INVALID_ASSIGNMENT*/n; |
| - o = /*warning:INVALID_ASSIGNMENT*/rr; |
| - o = /*warning:INVALID_ASSIGNMENT*/ro; |
| - o = /*warning:INVALID_ASSIGNMENT*/rn; |
| + o = /*severe:INVALID_ASSIGNMENT*/n; |
| + o = /*severe:INVALID_ASSIGNMENT*/rr; |
| + o = /*severe:INVALID_ASSIGNMENT*/ro; |
| + o = /*severe:INVALID_ASSIGNMENT*/rn; |
| o = oo; |
| - o = /*warning:INVALID_ASSIGNMENT*/nn; |
| - o = /*warning:INVALID_ASSIGNMENT*/nnn; |
| + o = /*severe:INVALID_ASSIGNMENT*/nn; |
| + o = /*severe:INVALID_ASSIGNMENT*/nnn; |
| - n = /*warning:INVALID_ASSIGNMENT*/r; |
| - n = /*warning:INVALID_ASSIGNMENT*/o; |
| + n = /*severe:INVALID_ASSIGNMENT*/r; |
| + n = /*severe:INVALID_ASSIGNMENT*/o; |
| n = n; |
| - n = /*warning:INVALID_ASSIGNMENT*/rr; |
| - n = /*warning:INVALID_ASSIGNMENT*/ro; |
| - n = /*warning:INVALID_ASSIGNMENT*/rn; |
| - n = /*warning:INVALID_ASSIGNMENT*/oo; |
| + n = /*severe:INVALID_ASSIGNMENT*/rr; |
| + n = /*severe:INVALID_ASSIGNMENT*/ro; |
| + n = /*severe:INVALID_ASSIGNMENT*/rn; |
| + n = /*severe:INVALID_ASSIGNMENT*/oo; |
| n = nn; |
| n = nnn; |
| - rr = /*warning:INVALID_ASSIGNMENT*/r; |
| - rr = /*warning:INVALID_ASSIGNMENT*/o; |
| - rr = /*warning:INVALID_ASSIGNMENT*/n; |
| + rr = /*severe:INVALID_ASSIGNMENT*/r; |
| + rr = /*severe:INVALID_ASSIGNMENT*/o; |
| + rr = /*severe:INVALID_ASSIGNMENT*/n; |
| rr = rr; |
| rr = ro; |
| - rr = /*warning:INVALID_ASSIGNMENT*/rn; |
| + rr = /*severe:INVALID_ASSIGNMENT*/rn; |
| rr = oo; |
| - rr = /*warning:INVALID_ASSIGNMENT*/nn; |
| - rr = /*warning:INVALID_ASSIGNMENT*/nnn; |
| + rr = /*severe:INVALID_ASSIGNMENT*/nn; |
| + rr = /*severe:INVALID_ASSIGNMENT*/nnn; |
| ro = /*warning:DOWN_CAST_COMPOSITE*/r; |
| - ro = /*warning:INVALID_ASSIGNMENT*/o; |
| - ro = /*warning:INVALID_ASSIGNMENT*/n; |
| + ro = /*severe:INVALID_ASSIGNMENT*/o; |
| + ro = /*severe:INVALID_ASSIGNMENT*/n; |
| ro = /*warning:DOWN_CAST_COMPOSITE*/rr; |
| ro = ro; |
| - ro = /*warning:INVALID_ASSIGNMENT*/rn; |
| + ro = /*severe:INVALID_ASSIGNMENT*/rn; |
| ro = oo; |
| - ro = /*warning:INVALID_ASSIGNMENT*/nn; |
| - ro = /*warning:INVALID_ASSIGNMENT*/nnn; |
| + ro = /*severe:INVALID_ASSIGNMENT*/nn; |
| + ro = /*severe:INVALID_ASSIGNMENT*/nnn; |
| rn = /*warning:DOWN_CAST_COMPOSITE*/r; |
| - rn = /*warning:INVALID_ASSIGNMENT*/o; |
| - rn = /*warning:INVALID_ASSIGNMENT*/n; |
| - rn = /*warning:INVALID_ASSIGNMENT*/rr; |
| - rn = /*warning:INVALID_ASSIGNMENT*/ro; |
| + rn = /*severe:INVALID_ASSIGNMENT*/o; |
| + rn = /*severe:INVALID_ASSIGNMENT*/n; |
| + rn = /*severe:INVALID_ASSIGNMENT*/rr; |
| + rn = /*severe:INVALID_ASSIGNMENT*/ro; |
| rn = rn; |
| - rn = /*warning:INVALID_ASSIGNMENT*/oo; |
| - rn = /*warning:INVALID_ASSIGNMENT*/nn; |
| - rn = /*warning:INVALID_ASSIGNMENT*/nnn; |
| + rn = /*severe:INVALID_ASSIGNMENT*/oo; |
| + rn = /*severe:INVALID_ASSIGNMENT*/nn; |
| + rn = /*severe:INVALID_ASSIGNMENT*/nnn; |
| oo = /*warning:DOWN_CAST_COMPOSITE*/r; |
| oo = /*warning:DOWN_CAST_COMPOSITE*/o; |
| - oo = /*warning:INVALID_ASSIGNMENT*/n; |
| + oo = /*severe:INVALID_ASSIGNMENT*/n; |
| oo = /*warning:DOWN_CAST_COMPOSITE*/rr; |
| oo = /*warning:DOWN_CAST_COMPOSITE*/ro; |
| - oo = /*warning:INVALID_ASSIGNMENT*/rn; |
| + oo = /*severe:INVALID_ASSIGNMENT*/rn; |
| oo = oo; |
| - oo = /*warning:INVALID_ASSIGNMENT*/nn; |
| - oo = /*warning:INVALID_ASSIGNMENT*/nnn; |
| + oo = /*severe:INVALID_ASSIGNMENT*/nn; |
| + oo = /*severe:INVALID_ASSIGNMENT*/nnn; |
| - nn = /*warning:INVALID_ASSIGNMENT*/r; |
| - nn = /*warning:INVALID_ASSIGNMENT*/o; |
| + nn = /*severe:INVALID_ASSIGNMENT*/r; |
| + nn = /*severe:INVALID_ASSIGNMENT*/o; |
| nn = /*warning:DOWN_CAST_COMPOSITE*/n; |
| - nn = /*warning:INVALID_ASSIGNMENT*/rr; |
| - nn = /*warning:INVALID_ASSIGNMENT*/ro; |
| - nn = /*warning:INVALID_ASSIGNMENT*/rn; |
| - nn = /*warning:INVALID_ASSIGNMENT*/oo; |
| + nn = /*severe:INVALID_ASSIGNMENT*/rr; |
| + nn = /*severe:INVALID_ASSIGNMENT*/ro; |
| + nn = /*severe:INVALID_ASSIGNMENT*/rn; |
| + nn = /*severe:INVALID_ASSIGNMENT*/oo; |
| nn = nn; |
| nn = nnn; |
| - nnn = /*warning:INVALID_ASSIGNMENT*/r; |
| - nnn = /*warning:INVALID_ASSIGNMENT*/o; |
| + nnn = /*severe:INVALID_ASSIGNMENT*/r; |
| + nnn = /*severe:INVALID_ASSIGNMENT*/o; |
| nnn = /*warning:DOWN_CAST_COMPOSITE*/n; |
| - nnn = /*warning:INVALID_ASSIGNMENT*/rr; |
| - nnn = /*warning:INVALID_ASSIGNMENT*/ro; |
| - nnn = /*warning:INVALID_ASSIGNMENT*/rn; |
| - nnn = /*warning:INVALID_ASSIGNMENT*/oo; |
| + nnn = /*severe:INVALID_ASSIGNMENT*/rr; |
| + nnn = /*severe:INVALID_ASSIGNMENT*/ro; |
| + nnn = /*severe:INVALID_ASSIGNMENT*/rn; |
| + nnn = /*severe:INVALID_ASSIGNMENT*/oo; |
| nnn = /*warning:DOWN_CAST_COMPOSITE*/nn; |
| nnn = nnn; |
| } |
| @@ -1609,7 +1606,7 @@ void main() { |
| { |
| I2I f; |
| f = new A(); |
| - f = /*warning:INVALID_ASSIGNMENT*/new B(); |
| + f = /*severe:INVALID_ASSIGNMENT*/new B(); |
| f = i2i; |
| f = /*severe:STATIC_TYPE_ERROR*/n2n; |
| f = /*warning:DOWN_CAST_COMPOSITE*/i2i as Object; |
| @@ -1617,7 +1614,7 @@ void main() { |
| } |
| { |
| N2N f; |
| - f = /*warning:INVALID_ASSIGNMENT*/new A(); |
| + f = /*severe:INVALID_ASSIGNMENT*/new A(); |
| f = new B(); |
| f = /*severe:STATIC_TYPE_ERROR*/i2i; |
| f = n2n; |
| @@ -1627,18 +1624,18 @@ void main() { |
| { |
| A f; |
| f = new A(); |
| - f = /*warning:INVALID_ASSIGNMENT*/new B(); |
| - f = /*warning:INVALID_ASSIGNMENT*/i2i; |
| - f = /*warning:INVALID_ASSIGNMENT*/n2n; |
| + f = /*severe:INVALID_ASSIGNMENT*/new B(); |
| + f = /*severe:INVALID_ASSIGNMENT*/i2i; |
| + f = /*severe:INVALID_ASSIGNMENT*/n2n; |
| f = /*info:DOWN_CAST_IMPLICIT*/i2i as Object; |
| f = /*info:DOWN_CAST_IMPLICIT*/n2n as Function; |
| } |
| { |
| B f; |
| - f = /*warning:INVALID_ASSIGNMENT*/new A(); |
| + f = /*severe:INVALID_ASSIGNMENT*/new A(); |
| f = new B(); |
| - f = /*warning:INVALID_ASSIGNMENT*/i2i; |
| - f = /*warning:INVALID_ASSIGNMENT*/n2n; |
| + f = /*severe:INVALID_ASSIGNMENT*/i2i; |
| + f = /*severe:INVALID_ASSIGNMENT*/n2n; |
| f = /*info:DOWN_CAST_IMPLICIT*/i2i as Object; |
| f = /*info:DOWN_CAST_IMPLICIT*/n2n as Function; |
| } |
| @@ -1714,8 +1711,8 @@ void main() { |
| local = g; // valid |
| // Non-generic function cannot subtype a generic one. |
| - local = /*warning:INVALID_ASSIGNMENT*/(x) => null; |
| - local = /*warning:INVALID_ASSIGNMENT*/nonGenericFn; |
| + local = /*severe:INVALID_ASSIGNMENT*/(x) => null; |
| + local = /*severe:INVALID_ASSIGNMENT*/nonGenericFn; |
| } |
| { |
| Iterable/*<R>*/ f/*<P, R>*/(List/*<P>*/ p) => null; |
| @@ -1730,8 +1727,8 @@ void main() { |
| local2 = /*warning:DOWN_CAST_COMPOSITE*/local; |
| // Non-generic function cannot subtype a generic one. |
| - local = /*warning:INVALID_ASSIGNMENT*/(x) => null; |
| - local = /*warning:INVALID_ASSIGNMENT*/nonGenericFn; |
| + local = /*severe:INVALID_ASSIGNMENT*/(x) => null; |
| + local = /*severe:INVALID_ASSIGNMENT*/nonGenericFn; |
| } |
| } |
| '''); |
| @@ -1880,22 +1877,22 @@ main() { |
| if (b) {} |
| if (/*info:DYNAMIC_CAST*/dyn) {} |
| if (/*info:DOWN_CAST_IMPLICIT*/obj) {} |
| - if (/*warning:NON_BOOL_CONDITION*/i) {} |
| + if (/*severe:NON_BOOL_CONDITION*/i) {} |
| while (b) {} |
| while (/*info:DYNAMIC_CAST*/dyn) {} |
| while (/*info:DOWN_CAST_IMPLICIT*/obj) {} |
| - while (/*warning:NON_BOOL_CONDITION*/i) {} |
| + while (/*severe:NON_BOOL_CONDITION*/i) {} |
| do {} while (b); |
| do {} while (/*info:DYNAMIC_CAST*/dyn); |
| do {} while (/*info:DOWN_CAST_IMPLICIT*/obj); |
| - do {} while (/*warning:NON_BOOL_CONDITION*/i); |
| + do {} while (/*severe:NON_BOOL_CONDITION*/i); |
| for (;b;) {} |
| for (;/*info:DYNAMIC_CAST*/dyn;) {} |
| for (;/*info:DOWN_CAST_IMPLICIT*/obj;) {} |
| - for (;/*warning:NON_BOOL_CONDITION*/i;) {} |
| + for (;/*severe:NON_BOOL_CONDITION*/i;) {} |
| } |
| '''); |
| } |
| @@ -1903,7 +1900,9 @@ main() { |
| void test_implicitCasts() { |
| addFile('num n; int i = /*info:ASSIGNMENT_CAST*/n;'); |
| check(); |
| - addFile('num n; int i = /*severe:ASSIGNMENT_CAST*/n;'); |
| + // TODO(jmesserly): should not be emitting the hint as well as the error. |
| + addFile( |
| + 'num n; int i = /*info:ASSIGNMENT_CAST,severe:INVALID_ASSIGNMENT*/n;'); |
|
Jennifer Messerly
2016/06/10 22:28:41
Note the slight change here, compared with the cha
|
| check(implicitCasts: false); |
| } |
| @@ -1920,8 +1919,8 @@ class Base { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Base implements I {} |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Base implements I {} |
| '''); |
| } |
| @@ -2080,8 +2079,8 @@ class M { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - extends Object with /*severe:INVALID_METHOD_OVERRIDE*/M |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + extends Object with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M |
| implements I {} |
| '''); |
| } |
| @@ -2104,12 +2103,12 @@ class M2 { |
| int x; |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| - with /*severe:INVALID_METHOD_OVERRIDE*/M1 {} |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T2 extends Base |
| - with /*severe:INVALID_METHOD_OVERRIDE*/M1, /*severe:INVALID_FIELD_OVERRIDE*/M2 {} |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T3 extends Base |
| - with /*severe:INVALID_FIELD_OVERRIDE*/M2, /*severe:INVALID_METHOD_OVERRIDE*/M1 {} |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| + with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M1 {} |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T2 extends Base |
| + with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M1, /*severe:INVALID_FIELD_OVERRIDE*/M2 {} |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T3 extends Base |
| + with /*severe:INVALID_FIELD_OVERRIDE*/M2, /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M1 {} |
| '''); |
| } |
| @@ -2131,9 +2130,9 @@ class M2 { |
| int x; |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| with M1, |
| - /*severe:INVALID_METHOD_OVERRIDE,severe:INVALID_FIELD_OVERRIDE*/M2 {} |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN,severe:INVALID_FIELD_OVERRIDE*/M2 {} |
| '''); |
| } |
| @@ -2161,8 +2160,8 @@ class M3 { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| - with M1, /*severe:INVALID_METHOD_OVERRIDE*/M2, M3 {} |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| + with M1, /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M2, M3 {} |
| '''); |
| } |
| @@ -2182,16 +2181,16 @@ class I1 { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Base |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Base |
| implements I1 {} |
| class T2 extends Base implements I1 { |
| m(a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T3 |
| - extends Object with /*severe:INVALID_METHOD_OVERRIDE*/Base |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T3 |
| + extends Object with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/Base |
| implements I1 {} |
| class T4 extends Object with Base implements I1 { |
| @@ -2264,9 +2263,9 @@ class A <S extends Returns<S>, T extends Returns<T>> { |
| S s; |
| T t; |
| if (b) { |
| - return /*warning:RETURN_OF_INVALID_TYPE*/b ? s : t; |
| + return /*severe:RETURN_OF_INVALID_TYPE*/b ? s : t; |
| } else { |
| - return /*warning:RETURN_OF_INVALID_TYPE*/s ?? t; |
| + return /*severe:RETURN_OF_INVALID_TYPE*/s ?? t; |
| } |
| } |
| } |
| @@ -2275,7 +2274,7 @@ class B<S, T extends S> { |
| T t; |
| S s; |
| int test(bool b) { |
| - return /*warning:RETURN_OF_INVALID_TYPE*/b ? t : s; |
| + return /*severe:RETURN_OF_INVALID_TYPE*/b ? t : s; |
| } |
| } |
| @@ -2286,7 +2285,7 @@ class C { |
| int test1(bool b) { |
| List<int> li; |
| List<double> ld; |
| - return /*warning:RETURN_OF_INVALID_TYPE*/b ? li : ld; |
| + return /*severe:RETURN_OF_INVALID_TYPE*/b ? li : ld; |
| } |
| // TODO(leafp): This case isn't handled yet. This test checks |
| // the case where two related classes are instantiated with related |
| @@ -2295,7 +2294,7 @@ class C { |
| List<int> li; |
| Iterable<double> id; |
| int x = |
| - /*info:ASSIGNMENT_CAST should be warning:INVALID_ASSIGNMENT*/ |
| + /*info:ASSIGNMENT_CAST should be severe:INVALID_ASSIGNMENT*/ |
| b ? li : id; |
| return /*warning:DOWN_CAST_COMPOSITE should be pass*/b ? li : id; |
| } |
| @@ -2378,8 +2377,8 @@ class M { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| - with /*severe:INVALID_METHOD_OVERRIDE*/M {} |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| + with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M {} |
| '''); |
| } |
| @@ -2399,7 +2398,7 @@ class M { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Base |
| with M {} |
| '''); |
| } |
| @@ -2418,8 +2417,8 @@ class M { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - extends Object with /*severe:INVALID_METHOD_OVERRIDE*/M |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + extends Object with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M |
| implements I2 {} |
| '''); |
| } |
| @@ -2438,8 +2437,8 @@ class M { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - extends Object with /*severe:INVALID_METHOD_OVERRIDE*/M |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + extends Object with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M |
| implements I2 {} |
| '''); |
| } |
| @@ -2458,8 +2457,8 @@ class M { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - extends Object with /*severe:INVALID_METHOD_OVERRIDE*/M |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + extends Object with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M |
| implements I2 {} |
| '''); |
| } |
| @@ -2485,9 +2484,9 @@ class M { |
| // Here we want to report both, because the error location is |
| // different. |
| // TODO(sigmund): should we merge these as well? |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Base |
| - with /*severe:INVALID_METHOD_OVERRIDE*/M |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Base |
| + with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M |
| implements I1 {} |
| '''); |
| } |
| @@ -2512,11 +2511,11 @@ class Parent1 extends Grandparent { |
| class Parent2 extends Grandparent {} |
| // Note: otherwise both errors would be reported on this line |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Parent1 |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Parent1 |
| implements I1 {} |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T2 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Parent2 |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T2 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Parent2 |
| implements I1 {} |
| '''); |
| } |
| @@ -2542,9 +2541,9 @@ class M2 { |
| // Here we want to report both, because the error location is |
| // different. |
| // TODO(sigmund): should we merge these as well? |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Object |
| - with /*severe:INVALID_METHOD_OVERRIDE*/M1, |
| - /*severe:INVALID_METHOD_OVERRIDE*/M2 |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 extends Object |
| + with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M1, |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M2 |
| implements I1 {} |
| '''); |
| } |
| @@ -2572,8 +2571,8 @@ class T1 extends Base implements I1 { |
| // If there is no error in the class, we do report the error at |
| // the base class: |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T2 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Base |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T2 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Base |
| implements I1 {} |
| '''); |
| } |
| @@ -2597,8 +2596,8 @@ class T1 extends Object with M implements I1 { |
| /*warning:INVALID_METHOD_OVERRIDE_NORMAL_PARAM_TYPE*/B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T2 |
| - extends Object with /*severe:INVALID_METHOD_OVERRIDE*/M |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T2 |
| + extends Object with /*severe:INVALID_METHOD_OVERRIDE_FROM_MIXIN*/M |
| implements I1 {} |
| '''); |
| } |
| @@ -2732,7 +2731,7 @@ void main() { |
| } |
| { |
| lOfAs = /*warning:DOWN_CAST_COMPOSITE*/mOfDs; |
| - lOfAs = /*warning:INVALID_ASSIGNMENT*/mOfOs; |
| + lOfAs = /*severe:INVALID_ASSIGNMENT*/mOfOs; |
| lOfAs = mOfAs; |
| lOfAs = /*warning:DOWN_CAST_COMPOSITE*/lOfDs; |
| lOfAs = /*info:DOWN_CAST_IMPLICIT*/lOfOs; |
| @@ -2754,7 +2753,7 @@ void main() { |
| mOfOs = mOfAs; |
| mOfOs = /*info:DOWN_CAST_IMPLICIT*/lOfDs; |
| mOfOs = /*info:DOWN_CAST_IMPLICIT*/lOfOs; |
| - mOfOs = /*warning:INVALID_ASSIGNMENT*/lOfAs; |
| + mOfOs = /*severe:INVALID_ASSIGNMENT*/lOfAs; |
| mOfOs = new M<Object>(); // Reset type propagation. |
| } |
| { |
| @@ -2801,13 +2800,13 @@ void voidFn() => null; |
| class A { |
| set a(y) => 4; |
| set b(y) => voidFn(); |
| - void set c(y) => /*warning:RETURN_OF_INVALID_TYPE*/4; |
| + void set c(y) => /*severe:RETURN_OF_INVALID_TYPE*/4; |
| void set d(y) => voidFn(); |
| /*warning:NON_VOID_RETURN_FOR_SETTER*/int set e(y) => 4; |
| /*warning:NON_VOID_RETURN_FOR_SETTER*/int set f(y) => |
| - /*warning:RETURN_OF_INVALID_TYPE*/voidFn(); |
| - set g(y) {return /*warning:RETURN_OF_INVALID_TYPE*/4;} |
| - void set h(y) {return /*warning:RETURN_OF_INVALID_TYPE*/4;} |
| + /*severe:RETURN_OF_INVALID_TYPE*/voidFn(); |
| + set g(y) {return /*severe:RETURN_OF_INVALID_TYPE*/4;} |
| + void set h(y) {return /*severe:RETURN_OF_INVALID_TYPE*/4;} |
| /*warning:NON_VOID_RETURN_FOR_SETTER*/int set i(y) {return 4;} |
| } |
| '''); |
| @@ -2931,8 +2930,8 @@ class Base { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Base implements I2 {} |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Base implements I2 {} |
| '''); |
| } |
| @@ -2950,8 +2949,8 @@ class Base { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Base |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Base |
| implements I2 {} |
| '''); |
| } |
| @@ -2970,8 +2969,8 @@ class Base { |
| m(B a) {} |
| } |
| -class /*warning:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| - /*severe:INVALID_METHOD_OVERRIDE*/extends Base |
| +class /*severe:INCONSISTENT_METHOD_INHERITANCE*/T1 |
| + /*severe:INVALID_METHOD_OVERRIDE_FROM_BASE*/extends Base |
| implements I2 {} |
| '''); |
| } |
| @@ -3026,7 +3025,7 @@ void main() { |
| int i = 42; |
| // Check the boolean conversion of the condition. |
| - print(/*warning:NON_BOOL_CONDITION*/i ? false : true); |
| + print(/*severe:NON_BOOL_CONDITION*/i ? false : true); |
| print((/*info:DOWN_CAST_IMPLICIT*/obj) ? false : true); |
| print((/*info:DYNAMIC_CAST*/dyn) ? false : true); |
| } |
| @@ -3084,14 +3083,14 @@ f() { |
| dynamic x; |
| if (x is int) { |
| int y = x; |
| - String z = /*warning:INVALID_ASSIGNMENT*/x; |
| + String z = /*severe:INVALID_ASSIGNMENT*/x; |
| } |
| } |
| g() { |
| Object x; |
| if (x is int) { |
| int y = x; |
| - String z = /*warning:INVALID_ASSIGNMENT*/x; |
| + String z = /*severe:INVALID_ASSIGNMENT*/x; |
| } |
| } |
| '''); |
| @@ -3112,9 +3111,9 @@ void main() { |
| B b; |
| y = a; |
| o = a; |
| - i = /*warning:INVALID_ASSIGNMENT*/a; |
| - d = /*warning:INVALID_ASSIGNMENT*/a; |
| - n = /*warning:INVALID_ASSIGNMENT*/a; |
| + i = /*severe:INVALID_ASSIGNMENT*/a; |
| + d = /*severe:INVALID_ASSIGNMENT*/a; |
| + n = /*severe:INVALID_ASSIGNMENT*/a; |
| a = a; |
| b = /*info:DOWN_CAST_IMPLICIT*/a; |
| } |
| @@ -3138,12 +3137,12 @@ void main() { |
| C c; |
| y = b; |
| o = b; |
| - i = /*warning:INVALID_ASSIGNMENT*/b; |
| - d = /*warning:INVALID_ASSIGNMENT*/b; |
| - n = /*warning:INVALID_ASSIGNMENT*/b; |
| + i = /*severe:INVALID_ASSIGNMENT*/b; |
| + d = /*severe:INVALID_ASSIGNMENT*/b; |
| + n = /*severe:INVALID_ASSIGNMENT*/b; |
| a = b; |
| b = b; |
| - c = /*warning:INVALID_ASSIGNMENT*/b; |
| + c = /*severe:INVALID_ASSIGNMENT*/b; |
| } |
| '''); |
| } |
| @@ -3215,12 +3214,12 @@ void main() { |
| { |
| left = /*info:DOWN_CAST_IMPLICIT*/top; |
| left = left; |
| - left = /*warning:INVALID_ASSIGNMENT*/right; |
| + left = /*severe:INVALID_ASSIGNMENT*/right; |
| left = bot; |
| } |
| { |
| right = /*info:DOWN_CAST_IMPLICIT*/top; |
| - right = /*warning:INVALID_ASSIGNMENT*/left; |
| + right = /*severe:INVALID_ASSIGNMENT*/left; |
| right = right; |
| right = bot; |
| } |
| @@ -3253,7 +3252,7 @@ test() { |
| ~a; |
| (/*info:DYNAMIC_INVOKE*/~d); |
| - !/*warning:NON_BOOL_NEGATION_EXPRESSION*/a; |
| + !/*severe:NON_BOOL_NEGATION_EXPRESSION*/a; |
| !/*info:DYNAMIC_CAST*/d; |
| -a; |
| @@ -3302,7 +3301,7 @@ void main() { |
| typedef int Foo(); |
| void foo() {} |
| void main () { |
| - Foo x = /*warning:INVALID_ASSIGNMENT,info:USE_OF_VOID_RESULT*/foo(); |
| + Foo x = /*severe:INVALID_ASSIGNMENT,info:USE_OF_VOID_RESULT*/foo(); |
| } |
| '''); |
| } |