| Index: pkg/analyzer/test/src/task/strong/inferred_type_test.dart
|
| diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
|
| index 48a6d784ae65f1b63b19c18c229379f14cd343e9..1c5847f5324719ecc7ee20d85bcc6eedda4bd228 100644
|
| --- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
|
| +++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
|
| @@ -686,7 +686,7 @@ class Baz {}
|
| checkFile('''
|
| void main() {
|
| List<int> l;
|
| - l = /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| + l = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| l = (l = /*info:INFERRED_TYPE_LITERAL*/[1]);
|
| }
|
| ''');
|
| @@ -747,30 +747,30 @@ class F4 {
|
| void main() {
|
| new F0(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F0(/*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - new F0(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - new F0(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello",
|
| + new F0(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + new F0(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello",
|
| 3]);
|
|
|
| new F1(a: /*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F1(a: /*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - new F1(a: /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - new F1(a: /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
| + new F1(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + new F1(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
|
|
| new F2(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F2(/*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - new F2(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - new F2(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
| + new F2(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + new F2(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
|
|
| new F3(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| - new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| - new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| + new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| + new F3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| /*info:INFERRED_TYPE_LITERAL*/[3]]);
|
|
|
| new F4(a: /*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| - new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| - new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| + new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| + new F4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| /*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| }
|
| ''');
|
| @@ -786,28 +786,28 @@ void f4({Iterable<Iterable<int>> a}) {}
|
| void main() {
|
| f0(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| f0(/*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - f0(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - f0(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
| + f0(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + f0(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
|
|
| f1(a: /*info:INFERRED_TYPE_LITERAL*/[]);
|
| f1(a: /*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - f1(a: /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - f1(a: /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
| + f1(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + f1(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
|
|
| f2(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| f2(/*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - f2(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - f2(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
| + f2(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + f2(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
|
|
| f3(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| f3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| - f3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| - f3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"], /*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| + f3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| + f3(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"], /*info:INFERRED_TYPE_LITERAL*/[3]]);
|
|
|
| f4(a: /*info:INFERRED_TYPE_LITERAL*/[]);
|
| f4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| - f4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| - f4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"], /*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| + f4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| + f4(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"], /*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| }
|
| ''');
|
| }
|
| @@ -835,8 +835,8 @@ void main () {
|
| Function2<int, List<String>> l0 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => null;
|
| Function2<int, List<String>> l1 = (int x) => /*info:INFERRED_TYPE_LITERAL*/["hello"];
|
| Function2<int, List<String>> l2 = /*error:INVALID_ASSIGNMENT*/(String x) => /*info:INFERRED_TYPE_LITERAL*/["hello"];
|
| - Function2<int, List<String>> l3 = (int x) => /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];
|
| - Function2<int, List<String>> l4 = /*info:INFERRED_TYPE_CLOSURE*/(int x) {return /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];};
|
| + Function2<int, List<String>> l3 = (int x) => /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];
|
| + Function2<int, List<String>> l4 = /*info:INFERRED_TYPE_CLOSURE*/(int x) {return /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];};
|
| }
|
| {
|
| Function2<int, int> l0 = /*info:INFERRED_TYPE_CLOSURE*/(x) => x;
|
| @@ -891,30 +891,30 @@ class F4<T> {
|
| void main() {
|
| new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello",
|
| + new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + new F0<int>(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello",
|
| 3]);
|
|
|
| new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
| + new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + new F1<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
|
|
| new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[3]);
|
| - new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| - new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
| + new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]);
|
| + new F2<int>(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3]);
|
|
|
| new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| - new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| - new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| + new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| + new F3<int>(/*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| /*info:INFERRED_TYPE_LITERAL*/[3]]);
|
|
|
| new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[]);
|
| new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[3]]);
|
| - new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| - new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| + new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"]]);
|
| + new F4<int>(a: /*info:INFERRED_TYPE_LITERAL*/[/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| /*info:INFERRED_TYPE_LITERAL*/[3]]);
|
|
|
| new F3(/*info:INFERRED_TYPE_LITERAL*/[]);
|
| @@ -959,8 +959,8 @@ void main () {
|
| v = /*info:INFERRED_TYPE_CLOSURE*//*<T>*/(int x) => null;
|
| v = /*<T>*/(int x) => /*info:INFERRED_TYPE_LITERAL*/["hello"];
|
| v = /*error:INVALID_ASSIGNMENT*//*<T>*/(String x) => /*info:INFERRED_TYPE_LITERAL*/["hello"];
|
| - v = /*<T>*/(int x) => /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];
|
| - v = /*info:INFERRED_TYPE_CLOSURE*//*<T>*/(int x) {return /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];};
|
| + v = /*<T>*/(int x) => /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];
|
| + v = /*info:INFERRED_TYPE_CLOSURE*//*<T>*/(int x) {return /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3];};
|
| }
|
| {
|
| int int2int/*<S>*/(int x) => null;
|
| @@ -1023,11 +1023,11 @@ void main() {
|
| }
|
| {
|
| A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new A(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello",
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello",
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new A.named(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello",
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello",
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| }
|
| {
|
| A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new B("hello", 3);
|
| @@ -1039,11 +1039,11 @@ void main() {
|
| }
|
| {
|
| A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new B(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3,
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3,
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new B.named(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3,
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3,
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| }
|
| {
|
| A<int, int> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new C(3);
|
| @@ -1055,9 +1055,9 @@ void main() {
|
| }
|
| {
|
| A<int, int> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new C(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| A<int, int> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new C.named(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| }
|
| {
|
| A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new D("hello");
|
| @@ -1069,9 +1069,9 @@ void main() {
|
| }
|
| {
|
| A<int, String> a0 = /*info:INFERRED_TYPE_ALLOCATION*/new D(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new D.named(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| }
|
| { // Currently we only allow variable constraints. Test that we reject.
|
| A<C<int>, String> a0 = /*error:STATIC_TYPE_ERROR*/new E("hello");
|
| @@ -1081,14 +1081,14 @@ void main() {
|
| a: /*info:INFERRED_TYPE_LITERAL*/[3],
|
| b: /*info:INFERRED_TYPE_LITERAL*/["hello"]);
|
| A<int, String> a1 = /*info:INFERRED_TYPE_ALLOCATION*/new F(3, "hello",
|
| - a: /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| - b: /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3]);
|
| + a: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"],
|
| + b: /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3]);
|
| A<int, String> a2 = /*info:INFERRED_TYPE_ALLOCATION*/new F.named(3, "hello", 3, "hello");
|
| A<int, String> a3 = /*info:INFERRED_TYPE_ALLOCATION*/new F.named(3, "hello");
|
| A<int, String> a4 = /*info:INFERRED_TYPE_ALLOCATION*/new F.named(3, "hello",
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello", /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/3);
|
| A<int, String> a5 = /*info:INFERRED_TYPE_ALLOCATION*/new F.named(3, "hello",
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hello");
|
| }
|
| }
|
| ''');
|
| @@ -1097,15 +1097,15 @@ void main() {
|
| void test_downwardsInferenceOnListLiterals_inferDownwards() {
|
| checkFile('''
|
| void foo([List<String> list1 = /*info:INFERRED_TYPE_LITERAL*/const [],
|
| - List<String> list2 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/42]]) {
|
| + List<String> list2 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/42]]) {
|
| }
|
|
|
| void main() {
|
| {
|
| List<int> l0 = /*info:INFERRED_TYPE_LITERAL*/[];
|
| List<int> l1 = /*info:INFERRED_TYPE_LITERAL*/[3];
|
| - List<int> l2 = /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| - List<int> l3 = /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
|
| + List<int> l2 = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| + List<int> l3 = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
|
| }
|
| {
|
| List<dynamic> l0 = [];
|
| @@ -1116,20 +1116,20 @@ void main() {
|
| {
|
| List<int> l0 = /*error:STATIC_TYPE_ERROR*/<num>[];
|
| List<int> l1 = /*error:STATIC_TYPE_ERROR*/<num>[3];
|
| - List<int> l2 = /*error:STATIC_TYPE_ERROR*/<num>[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| - List<int> l3 = /*error:STATIC_TYPE_ERROR*/<num>[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
|
| + List<int> l2 = /*error:STATIC_TYPE_ERROR*/<num>[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| + List<int> l3 = /*error:STATIC_TYPE_ERROR*/<num>[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
|
| }
|
| {
|
| Iterable<int> i0 = /*info:INFERRED_TYPE_LITERAL*/[];
|
| Iterable<int> i1 = /*info:INFERRED_TYPE_LITERAL*/[3];
|
| - Iterable<int> i2 = /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| - Iterable<int> i3 = /*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
|
| + Iterable<int> i2 = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| + Iterable<int> i3 = /*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
|
| }
|
| {
|
| const List<int> c0 = /*info:INFERRED_TYPE_LITERAL*/const [];
|
| const List<int> c1 = /*info:INFERRED_TYPE_LITERAL*/const [3];
|
| - const List<int> c2 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| - const List<int> c3 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
|
| + const List<int> c2 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello"];
|
| + const List<int> c3 = /*info:INFERRED_TYPE_LITERAL*/const [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/"hello", 3];
|
| }
|
| }
|
| ''');
|
| @@ -1198,9 +1198,8 @@ main() {
|
| checkFile('''
|
| void foo([Map<int, String> m1 = /*info:INFERRED_TYPE_LITERAL*/const {1: "hello"},
|
| Map<int, String> m2 = /*info:INFERRED_TYPE_LITERAL*/const {
|
| - // The warning is the type error, and the severe is the compile time
|
| - // error from const evaluation.
|
| - /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,warning:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
|
| + // One error is from type checking and the other is from const evaluation.
|
| + /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
|
| "world"
|
| }]) {
|
| }
|
| @@ -1209,15 +1208,15 @@ void main() {
|
| Map<int, String> l0 = /*info:INFERRED_TYPE_LITERAL*/{};
|
| Map<int, String> l1 = /*info:INFERRED_TYPE_LITERAL*/{3: "hello"};
|
| Map<int, String> l2 = /*info:INFERRED_TYPE_LITERAL*/{
|
| - /*warning:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": "hello"
|
| + /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": "hello"
|
| };
|
| Map<int, String> l3 = /*info:INFERRED_TYPE_LITERAL*/{
|
| - 3: /*warning:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| + 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| };
|
| Map<int, String> l4 = /*info:INFERRED_TYPE_LITERAL*/{
|
| 3: "hello",
|
| - /*warning:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
|
| - /*warning:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| + /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
|
| + /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| };
|
| }
|
| {
|
| @@ -1232,23 +1231,23 @@ void main() {
|
| Map<dynamic, String> l1 = /*info:INFERRED_TYPE_LITERAL*/{3: "hello"};
|
| Map<dynamic, String> l2 = /*info:INFERRED_TYPE_LITERAL*/{"hello": "hello"};
|
| Map<dynamic, String> l3 = /*info:INFERRED_TYPE_LITERAL*/{
|
| - 3: /*warning:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| + 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| };
|
| Map<dynamic, String> l4 = /*info:INFERRED_TYPE_LITERAL*/{
|
| 3: "hello",
|
| - "hello": /*warning:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| + "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| };
|
| }
|
| {
|
| Map<int, dynamic> l0 = /*info:INFERRED_TYPE_LITERAL*/{};
|
| Map<int, dynamic> l1 = /*info:INFERRED_TYPE_LITERAL*/{3: "hello"};
|
| Map<int, dynamic> l2 = /*info:INFERRED_TYPE_LITERAL*/{
|
| - /*warning:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": "hello"
|
| + /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": "hello"
|
| };
|
| Map<int, dynamic> l3 = /*info:INFERRED_TYPE_LITERAL*/{3: 3};
|
| Map<int, dynamic> l4 = /*info:INFERRED_TYPE_LITERAL*/{
|
| 3:"hello",
|
| - /*warning:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": 3
|
| + /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello": 3
|
| };
|
| }
|
| {
|
| @@ -1260,16 +1259,16 @@ void main() {
|
| const Map<int, String> l0 = /*info:INFERRED_TYPE_LITERAL*/const {};
|
| const Map<int, String> l1 = /*info:INFERRED_TYPE_LITERAL*/const {3: "hello"};
|
| const Map<int, String> l2 = /*info:INFERRED_TYPE_LITERAL*/const {
|
| - /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,warning:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
|
| + /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
|
| "hello"
|
| };
|
| const Map<int, String> l3 = /*info:INFERRED_TYPE_LITERAL*/const {
|
| - 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,warning:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| + 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| };
|
| const Map<int, String> l4 = /*info:INFERRED_TYPE_LITERAL*/const {
|
| 3:"hello",
|
| - /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,warning:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
|
| - /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,warning:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| + /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/"hello":
|
| + /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/3
|
| };
|
| }
|
| }
|
| @@ -1348,7 +1347,7 @@ main() {
|
| new Foo<String>().method("str");
|
| new Foo().method("str");
|
|
|
| - new Foo<String>().method(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/42);
|
| + new Foo<String>().method(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/42);
|
| }
|
| ''');
|
| }
|
| @@ -1382,8 +1381,8 @@ main() {
|
| // Types other than int and double are not accepted.
|
| printInt(
|
| /*info:DOWN_CAST_IMPLICIT*/min(
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hi",
|
| - /*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"there"));
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"hi",
|
| + /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/"there"));
|
| }
|
| ''');
|
| }
|
| @@ -1408,7 +1407,7 @@ main() {
|
| /*=T*/ f/*<T>*/(List/*<T>*/ s) => null;
|
| main() {
|
| String x = f(/*info:INFERRED_TYPE_LITERAL*/['hi']);
|
| - String y = f(/*info:INFERRED_TYPE_LITERAL*/[/*warning:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/42]);
|
| + String y = f(/*info:INFERRED_TYPE_LITERAL*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/42]);
|
| }
|
| ''');
|
| }
|
| @@ -1513,11 +1512,11 @@ takeDDN(math.max);
|
| takeIIO(math.max);
|
| takeDDO(math.max);
|
|
|
| -takeOOI(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| -takeIDI(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| -takeDID(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| -takeOON(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| -takeOOO(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| +takeOOI(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| +takeIDI(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| +takeDID(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| +takeOON(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
| +takeOOO(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/math.max);
|
|
|
| // Also test SimpleIdentifier
|
| takeIII(min);
|
| @@ -1530,11 +1529,11 @@ takeDDN(min);
|
| takeIIO(min);
|
| takeDDO(min);
|
|
|
| -takeOOI(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| -takeIDI(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| -takeDID(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| -takeOON(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| -takeOOO(/*error:STATIC_TYPE_ERROR,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| +takeOOI(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| +takeIDI(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| +takeDID(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| +takeOON(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
| +takeOOO(/*error:STATIC_TYPE_ERROR,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/min);
|
|
|
| // Also PropertyAccess
|
| takeIII(new C().m);
|
| @@ -1556,14 +1555,14 @@ takeDDO(new C().m);
|
| //
|
| // That's legal because we're loosening parameter types.
|
| //
|
| -takeOON(/*warning:DOWN_CAST_COMPOSITE,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| -takeOOO(/*warning:DOWN_CAST_COMPOSITE,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| +takeOON(/*warning:DOWN_CAST_COMPOSITE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| +takeOOO(/*warning:DOWN_CAST_COMPOSITE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
|
|
| // Note: this is a warning because a downcast of a method tear-off could work
|
| // in "normal" Dart, due to bivariance.
|
| -takeOOI(/*warning:DOWN_CAST_COMPOSITE,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| -takeIDI(/*warning:DOWN_CAST_COMPOSITE,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| -takeDID(/*warning:DOWN_CAST_COMPOSITE,warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| +takeOOI(/*warning:DOWN_CAST_COMPOSITE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| +takeIDI(/*warning:DOWN_CAST_COMPOSITE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| +takeDID(/*warning:DOWN_CAST_COMPOSITE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/new C().m);
|
| }
|
|
|
| void takeIII(int fn(int a, int b)) {}
|
| @@ -2095,8 +2094,8 @@ class A { int x; B operator+(other) => null; }
|
| class B extends A { B(ignore); }
|
| var a = new A();
|
| // Note: it doesn't matter that some of these refer to 'x'.
|
| -var b = new B(/*warning:UNDEFINED_IDENTIFIER*/x); // allocations
|
| -var c1 = [/*warning:UNDEFINED_IDENTIFIER*/x]; // list literals
|
| +var b = new B(/*error:UNDEFINED_IDENTIFIER*/x); // allocations
|
| +var c1 = [/*error:UNDEFINED_IDENTIFIER*/x]; // list literals
|
| var c2 = const [];
|
| var d = <dynamic, dynamic>{'a': 'b'}; // map literals
|
| var e = new A()..x = 3; // cascades
|
| @@ -3270,14 +3269,14 @@ B v = null;
|
| checkFile(r'''
|
| test1() {
|
| var x = /*info:INFERRED_TYPE_LITERAL*/[1, 2, 3];
|
| - x.add(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
|
| - x.add(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0);
|
| + x.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
|
| + x.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0);
|
| x.add(4);
|
| List<num> y = x;
|
| }
|
| test2() {
|
| var x = /*info:INFERRED_TYPE_LITERAL*/[1, 2.0, 3];
|
| - x.add(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
|
| + x.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
|
| x.add(4.0);
|
| List<int> y = /*info:ASSIGNMENT_CAST*/x;
|
| }
|
| @@ -3288,14 +3287,14 @@ test2() {
|
| checkFile(r'''
|
| var x1 = /*info:INFERRED_TYPE_LITERAL*/[1, 2, 3];
|
| test1() {
|
| - x1.add(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
|
| - x1.add(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0);
|
| + x1.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
|
| + x1.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0);
|
| x1.add(4);
|
| List<num> y = x1;
|
| }
|
| var x2 = /*info:INFERRED_TYPE_LITERAL*/[1, 2.0, 3];
|
| test2() {
|
| - x2.add(/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
|
| + x2.add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi');
|
| x2.add(4.0);
|
| List<int> y = /*info:ASSIGNMENT_CAST*/x2;
|
| }
|
| @@ -3329,8 +3328,8 @@ var x = [null];
|
| test1() {
|
| var x = /*info:INFERRED_TYPE_LITERAL*/{ 1: 'x', 2: 'y' };
|
| x[3] = 'z';
|
| - x[/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
|
| - x[/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0] = 'u';
|
| + x[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
|
| + x[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0] = 'u';
|
| x[3] = /*error:INVALID_ASSIGNMENT*/42;
|
| Map<num, String> y = x;
|
| }
|
| @@ -3338,7 +3337,7 @@ test1() {
|
| test2() {
|
| var x = /*info:INFERRED_TYPE_LITERAL*/{ 1: 'x', 2: 'y', 3.0: new RegExp('.') };
|
| x[3] = 'z';
|
| - x[/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
|
| + x[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
|
| x[4.0] = 'u';
|
| x[3] = /*error:INVALID_ASSIGNMENT*/42;
|
| Pattern p = null;
|
| @@ -3353,8 +3352,8 @@ test2() {
|
| var x1 = /*info:INFERRED_TYPE_LITERAL*/{ 1: 'x', 2: 'y' };
|
| test1() {
|
| x1[3] = 'z';
|
| - x1[/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
|
| - x1[/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0] = 'u';
|
| + x1[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
|
| + x1[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/4.0] = 'u';
|
| x1[3] = /*error:INVALID_ASSIGNMENT*/42;
|
| Map<num, String> y = x1;
|
| }
|
| @@ -3362,7 +3361,7 @@ test1() {
|
| var x2 = /*info:INFERRED_TYPE_LITERAL*/{ 1: 'x', 2: 'y', 3.0: new RegExp('.') };
|
| test2() {
|
| x2[3] = 'z';
|
| - x2[/*warning:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
|
| + x2[/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/'hi'] = 'w';
|
| x2[4.0] = 'u';
|
| x2[3] = /*error:INVALID_ASSIGNMENT*/42;
|
| Pattern p = null;
|
|
|