Chromium Code Reviews| 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 741659a2822bad3484d6af9030708eb1b282277d..b4d73c8ec76c5cdf5df5e607cc2e8d122dd9adb7 100644 |
| --- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart |
| +++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart |
| @@ -451,14 +451,13 @@ var f = /*info:INFERRED_TYPE_CLOSURE,warning:UNSAFE_BLOCK_CLOSURE_INFERENCE*/() |
| void test_bottom() { |
| // When a type is inferred from the expression `null`, the inferred type is |
| - // `dynamic`, but the inferred type of the initializer is `bottom`. |
| - // TODO(paulberry): Is this intentional/desirable? |
| + // `dynamic`. |
| var mainUnit = checkFile(''' |
| var v = null; |
| '''); |
| var v = mainUnit.topLevelVariables[0]; |
| expect(v.type.toString(), 'dynamic'); |
| - expect(v.initializer.type.toString(), '() → <bottom>'); |
| + expect(v.initializer.type.toString(), '() → dynamic'); |
| } |
| void test_bottom_inClosure() { |
| @@ -1011,7 +1010,7 @@ typedef T Function2<S, T>(S x); |
| void main () { |
| { |
| - Function2<int, String> l0 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => null; |
| + Function2<int, String> l0 = (int x) => null; |
| Function2<int, String> l1 = (int x) => "hello"; |
| Function2<int, String> l2 = /*error:INVALID_ASSIGNMENT*/(String x) => "hello"; |
| Function2<int, String> l3 = /*error:INVALID_ASSIGNMENT*/(int x) => 3; |
| @@ -1025,7 +1024,7 @@ void main () { |
| Function2<int, String> l4 = /*info:INFERRED_TYPE_CLOSURE*/(x) {return /*error:RETURN_OF_INVALID_TYPE*/x;}; |
| } |
| { |
| - Function2<int, List<String>> l0 = /*info:INFERRED_TYPE_CLOSURE*/(int x) => null; |
| + Function2<int, List<String>> l0 = (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*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3]; |
| @@ -1131,7 +1130,7 @@ void main () { |
| { |
| String f/*<S>*/(int x) => null; |
| var v = f; |
| - v = /*info:INFERRED_TYPE_CLOSURE*//*<T>*/(int x) => null; |
| + v = /*<T>*/(int x) => null; |
| v = /*<T>*/(int x) => "hello"; |
| v = /*error:INVALID_ASSIGNMENT*//*<T>*/(String x) => "hello"; |
| v = /*error:INVALID_ASSIGNMENT*//*<T>*/(int x) => 3; |
| @@ -1140,7 +1139,7 @@ void main () { |
| { |
| String f/*<S>*/(int x) => null; |
| var v = f; |
| - v = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*//*<T>*/(x) => null; |
| + v = /*info:INFERRED_TYPE_CLOSURE*//*<T>*/(x) => null; |
| v = /*info:INFERRED_TYPE_CLOSURE*//*<T>*/(x) => "hello"; |
| v = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*//*<T>*/(x) => 3; |
| v = /*info:INFERRED_TYPE_CLOSURE, info:INFERRED_TYPE_CLOSURE*//*<T>*/(x) {return /*error:RETURN_OF_INVALID_TYPE*/3;}; |
| @@ -1149,7 +1148,7 @@ void main () { |
| { |
| List<String> f/*<S>*/(int x) => null; |
| var v = f; |
| - v = /*info:INFERRED_TYPE_CLOSURE*//*<T>*/(int x) => null; |
| + v = /*<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*/[/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/3]; |
| @@ -2806,7 +2805,8 @@ class C { |
| num n; |
| } |
| C f() => null; |
| -var x = (f().n *= null); |
| +var x = (f().n *= (null as num)); |
| +var y = (f().n *= /*error:STATIC_TYPE_ERROR*/null); |
| '''); |
| var x = mainUnit.topLevelVariables[0]; |
| expect(x.name, 'x'); |
| @@ -2819,7 +2819,8 @@ class C { |
| num n; |
| } |
| C c; |
| -var x = (c.n *= null); |
| +var x = (c.n *= (null as num)); |
| +var y = (c.n *= /*error:STATIC_TYPE_ERROR*/null); |
|
Leaf
2016/08/04 23:52:55
This doesn't seem right either.
Jennifer Messerly
2016/08/05 13:46:36
yeah, this one could be fixed in a straightforward
|
| '''); |
| var x = mainUnit.topLevelVariables[1]; |
| expect(x.name, 'x'); |
| @@ -2833,7 +2834,7 @@ class I { |
| } |
| abstract class C implements I {} |
| C c; |
| -var x = (c.n *= null); |
| +var x = (c.n *= (null as num)); |
| '''); |
| var x = mainUnit.topLevelVariables[1]; |
| expect(x.name, 'x'); |
| @@ -2847,7 +2848,7 @@ class I { |
| } |
| abstract class C implements I {} |
| C f() => null; |
| -var x = (f().n *= null); |
| +var x = (f().n *= (null as num)); |
| '''); |
| var x = mainUnit.topLevelVariables[0]; |
| expect(x.name, 'x'); |