OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analyzer.test.src.task.strong.checker_test; | 5 library analyzer.test.src.task.strong.checker_test; |
6 | 6 |
7 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 7 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
8 | 8 |
9 import 'strong_test_helper.dart'; | 9 import 'strong_test_helper.dart'; |
10 | 10 |
(...skipping 2187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2198 addFile('num n; int i = /*info:ASSIGNMENT_CAST*/n;'); | 2198 addFile('num n; int i = /*info:ASSIGNMENT_CAST*/n;'); |
2199 await check(); | 2199 await check(); |
2200 // TODO(jmesserly): should not be emitting the hint as well as the error. | 2200 // TODO(jmesserly): should not be emitting the hint as well as the error. |
2201 // It is a "strong mode hint" however, so it will not be user visible. | 2201 // It is a "strong mode hint" however, so it will not be user visible. |
2202 addFile( | 2202 addFile( |
2203 'num n; int i = /*info:ASSIGNMENT_CAST,error:INVALID_ASSIGNMENT*/n;'); | 2203 'num n; int i = /*info:ASSIGNMENT_CAST,error:INVALID_ASSIGNMENT*/n;'); |
2204 await check(implicitCasts: false); | 2204 await check(implicitCasts: false); |
2205 } | 2205 } |
2206 | 2206 |
2207 test_implicitCasts_genericMethods() async { | 2207 test_implicitCasts_genericMethods() async { |
2208 addFile('var x = <String>[].map((x) => "");'); | 2208 addFile(''' |
| 2209 var x = <String>[].map<String>((x) => ""); |
| 2210 '''); |
2209 await check(implicitCasts: false); | 2211 await check(implicitCasts: false); |
2210 } | 2212 } |
2211 | 2213 |
2212 test_implicitCasts_numericOps() async { | 2214 test_implicitCasts_numericOps() async { |
2213 // Regression test for https://github.com/dart-lang/sdk/issues/26912 | 2215 // Regression test for https://github.com/dart-lang/sdk/issues/26912 |
2214 addFile(r''' | 2216 addFile(r''' |
2215 void f() { | 2217 void f() { |
2216 int x = 0; | 2218 int x = 0; |
2217 int y = 0; | 2219 int y = 0; |
2218 x += y; | 2220 x += y; |
2219 } | 2221 } |
2220 '''); | 2222 '''); |
2221 await check(implicitCasts: false); | 2223 await check(implicitCasts: false); |
2222 } | 2224 } |
2223 | 2225 |
2224 test_implicitDynamic_field() async { | 2226 test_implicitDynamic_field() async { |
2225 addFile(r''' | 2227 addFile(r''' |
2226 class C { | 2228 class C { |
2227 var /*error:IMPLICIT_DYNAMIC_FIELD*/x0; | 2229 var /*error:IMPLICIT_DYNAMIC_FIELD*/x0; |
2228 var /*error:IMPLICIT_DYNAMIC_FIELD*/x1 = (<dynamic>[])[0]; | 2230 var /*error:IMPLICIT_DYNAMIC_FIELD*/x1 = |
| 2231 /*error:TOP_LEVEL_UNSUPPORTED*/(<dynamic>[])[0]; |
2229 var /*error:IMPLICIT_DYNAMIC_FIELD*/x2, | 2232 var /*error:IMPLICIT_DYNAMIC_FIELD*/x2, |
2230 x3 = 42, | 2233 x3 = 42, |
2231 /*error:IMPLICIT_DYNAMIC_FIELD*/x4; | 2234 /*error:IMPLICIT_DYNAMIC_FIELD*/x4; |
2232 dynamic y0; | 2235 dynamic y0; |
2233 dynamic y1 = (<dynamic>[])[0]; | 2236 dynamic y1 = (<dynamic>[])[0]; |
2234 } | 2237 } |
2235 '''); | 2238 '''); |
2236 await check(implicitDynamic: false); | 2239 await check(implicitDynamic: false); |
2237 } | 2240 } |
2238 | 2241 |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2445 B y = /*info:INFERRED_TYPE_ALLOCATION*/new B(); | 2448 B y = /*info:INFERRED_TYPE_ALLOCATION*/new B(); |
2446 return /*info:INFERRED_TYPE_ALLOCATION*/new A(); | 2449 return /*info:INFERRED_TYPE_ALLOCATION*/new A(); |
2447 } | 2450 } |
2448 '''); | 2451 '''); |
2449 await check(implicitDynamic: false); | 2452 await check(implicitDynamic: false); |
2450 } | 2453 } |
2451 | 2454 |
2452 test_implicitDynamic_variable() async { | 2455 test_implicitDynamic_variable() async { |
2453 addFile(r''' | 2456 addFile(r''' |
2454 var /*error:IMPLICIT_DYNAMIC_VARIABLE*/x0; | 2457 var /*error:IMPLICIT_DYNAMIC_VARIABLE*/x0; |
2455 var /*error:IMPLICIT_DYNAMIC_VARIABLE*/x1 = (<dynamic>[])[0]; | 2458 var /*error:IMPLICIT_DYNAMIC_VARIABLE*/x1 = |
| 2459 /*error:TOP_LEVEL_UNSUPPORTED*/(<dynamic>[])[0]; |
2456 var /*error:IMPLICIT_DYNAMIC_VARIABLE*/x2, | 2460 var /*error:IMPLICIT_DYNAMIC_VARIABLE*/x2, |
2457 x3 = 42, | 2461 x3 = 42, |
2458 /*error:IMPLICIT_DYNAMIC_VARIABLE*/x4; | 2462 /*error:IMPLICIT_DYNAMIC_VARIABLE*/x4; |
2459 dynamic y0; | 2463 dynamic y0; |
2460 dynamic y1 = (<dynamic>[])[0]; | 2464 dynamic y1 = (<dynamic>[])[0]; |
2461 '''); | 2465 '''); |
2462 await check(implicitDynamic: false); | 2466 await check(implicitDynamic: false); |
2463 } | 2467 } |
2464 | 2468 |
2465 test_invalidOverrides_baseClassOverrideToChildInterface() async { | 2469 test_invalidOverrides_baseClassOverrideToChildInterface() async { |
(...skipping 1672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4138 class CheckerTest_Driver extends CheckerTest { | 4142 class CheckerTest_Driver extends CheckerTest { |
4139 @override | 4143 @override |
4140 bool get enableNewAnalysisDriver => true; | 4144 bool get enableNewAnalysisDriver => true; |
4141 | 4145 |
4142 @failingTest | 4146 @failingTest |
4143 @override | 4147 @override |
4144 test_covariantOverride_fields() async { | 4148 test_covariantOverride_fields() async { |
4145 await super.test_covariantOverride_fields(); | 4149 await super.test_covariantOverride_fields(); |
4146 } | 4150 } |
4147 } | 4151 } |
OLD | NEW |