OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 engine.non_error_resolver_test; | 5 library engine.non_error_resolver_test; |
6 | 6 |
7 import 'package:analyzer/src/generated/ast.dart'; | 7 import 'package:analyzer/src/generated/ast.dart'; |
8 import 'package:analyzer/src/generated/element.dart'; | 8 import 'package:analyzer/src/generated/element.dart'; |
9 import 'package:analyzer/src/generated/engine.dart'; | 9 import 'package:analyzer/src/generated/engine.dart'; |
10 import 'package:analyzer/src/generated/error.dart'; | 10 import 'package:analyzer/src/generated/error.dart'; |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 Source source = addSource(r''' | 230 Source source = addSource(r''' |
231 typedef A(int p1, String p2); | 231 typedef A(int p1, String p2); |
232 f(A a) { | 232 f(A a) { |
233 a(1, '2'); | 233 a(1, '2'); |
234 }'''); | 234 }'''); |
235 resolve(source); | 235 resolve(source); |
236 assertNoErrors(source); | 236 assertNoErrors(source); |
237 verify([source]); | 237 verify([source]); |
238 } | 238 } |
239 | 239 |
| 240 void test_assignability_function_expr_rettype_from_typedef_cls() { |
| 241 // In the code below, the type of (() => f()) has a return type which is |
| 242 // a class, and that class is inferred from the return type of the typedef |
| 243 // F. |
| 244 Source source = addSource(''' |
| 245 class C {} |
| 246 typedef C F(); |
| 247 F f; |
| 248 main() { |
| 249 F f2 = (() => f()); |
| 250 } |
| 251 '''); |
| 252 resolve(source); |
| 253 assertNoErrors(source); |
| 254 verify([source]); |
| 255 } |
| 256 |
| 257 void test_assignability_function_expr_rettype_from_typedef_typedef() { |
| 258 // In the code below, the type of (() => f()) has a return type which is |
| 259 // a typedef, and that typedef is inferred from the return type of the |
| 260 // typedef F. |
| 261 Source source = addSource(''' |
| 262 typedef G F(); |
| 263 typedef G(); |
| 264 F f; |
| 265 main() { |
| 266 F f2 = (() => f()); |
| 267 } |
| 268 '''); |
| 269 resolve(source); |
| 270 assertNoErrors(source); |
| 271 verify([source]); |
| 272 } |
| 273 |
240 void test_assignmentToFinal_prefixNegate() { | 274 void test_assignmentToFinal_prefixNegate() { |
241 Source source = addSource(r''' | 275 Source source = addSource(r''' |
242 f() { | 276 f() { |
243 final x = 0; | 277 final x = 0; |
244 -x; | 278 -x; |
245 }'''); | 279 }'''); |
246 resolve(source); | 280 resolve(source); |
247 assertNoErrors(source); | 281 assertNoErrors(source); |
248 verify([source]); | 282 verify([source]); |
249 } | 283 } |
(...skipping 5219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5469 resolve(source); | 5503 resolve(source); |
5470 assertNoErrors(source); | 5504 assertNoErrors(source); |
5471 verify([source]); | 5505 verify([source]); |
5472 reset(); | 5506 reset(); |
5473 } | 5507 } |
5474 | 5508 |
5475 void _check_wrongNumberOfParametersForOperator1(String name) { | 5509 void _check_wrongNumberOfParametersForOperator1(String name) { |
5476 _check_wrongNumberOfParametersForOperator(name, "a"); | 5510 _check_wrongNumberOfParametersForOperator(name, "a"); |
5477 } | 5511 } |
5478 } | 5512 } |
OLD | NEW |