Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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.generated.strong_mode_test; | 5 library analyzer.test.generated.strong_mode_test; |
| 6 | 6 |
| 7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
| 8 import 'package:analyzer/dart/element/element.dart'; | 8 import 'package:analyzer/dart/element/element.dart'; |
| 9 import 'package:analyzer/dart/element/type.dart'; | 9 import 'package:analyzer/dart/element/type.dart'; |
| 10 import 'package:analyzer/src/dart/element/element.dart'; | 10 import 'package:analyzer/src/dart/element/element.dart'; |
| (...skipping 1434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1445 Expression exp = (statements[i] as ExpressionStatement).expression; | 1445 Expression exp = (statements[i] as ExpressionStatement).expression; |
| 1446 expect(exp.staticType, typeProvider.dynamicType); | 1446 expect(exp.staticType, typeProvider.dynamicType); |
| 1447 } | 1447 } |
| 1448 } | 1448 } |
| 1449 | 1449 |
| 1450 checkBody("C"); | 1450 checkBody("C"); |
| 1451 checkBody("D"); | 1451 checkBody("D"); |
| 1452 } | 1452 } |
| 1453 | 1453 |
| 1454 void test_genericFunction_upwardsAndDownwards() { | 1454 void test_genericFunction_upwardsAndDownwards() { |
| 1455 // Regression tests for https://github.com/dart-lang/sdk/issues/27151. | 1455 // Regression tests for https://github.com/dart-lang/sdk/issues/27586. |
| 1456 resolveTestUnit(r'List<num> x = [1, 2];'); | 1456 resolveTestUnit(r'List<num> x = [1, 2];'); |
| 1457 expectInitializerType('x', 'List<int>'); | 1457 expectInitializerType('x', 'List<num>'); |
| 1458 } | 1458 } |
| 1459 | 1459 |
| 1460 void test_genericFunction_upwardsAndDownwards_Object() { | |
|
Leaf
2016/11/30 05:24:30
Can you add a version of this using generic method
| |
| 1461 // Regression tests for https://github.com/dart-lang/sdk/issues/27625. | |
| 1462 resolveTestUnit(r''' | |
| 1463 List<Object> aaa = []; | |
| 1464 List<Object> bbb = [1, 2, 3]; | |
| 1465 List<Object> ccc = [null]; | |
| 1466 List<Object> ddd = [1 as dynamic]; | |
| 1467 List<Object> eee = [new Object()]; | |
|
Leaf
2016/11/30 05:24:29
Do we have any test cases for inference which uses
| |
| 1468 '''); | |
| 1469 expectInitializerType('aaa', 'List<Object>'); | |
| 1470 expectInitializerType('bbb', 'List<Object>'); | |
| 1471 expectInitializerType('ccc', 'List<Object>'); | |
| 1472 expectInitializerType('ddd', 'List<Object>'); | |
| 1473 expectInitializerType('eee', 'List<Object>'); | |
| 1474 } | |
| 1475 | |
| 1476 | |
| 1460 void test_genericMethod() { | 1477 void test_genericMethod() { |
| 1461 resolveTestUnit(r''' | 1478 resolveTestUnit(r''' |
| 1462 class C<E> { | 1479 class C<E> { |
| 1463 List/*<T>*/ f/*<T>*/(E e) => null; | 1480 List/*<T>*/ f/*<T>*/(E e) => null; |
| 1464 } | 1481 } |
| 1465 main() { | 1482 main() { |
| 1466 C<String> cOfString; | 1483 C<String> cOfString; |
| 1467 } | 1484 } |
| 1468 '''); | 1485 '''); |
| 1469 expectFunctionType('f', '<T>(E) → List<T>', | 1486 expectFunctionType('f', '<T>(E) → List<T>', |
| (...skipping 931 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2401 main() { | 2418 main() { |
| 2402 var v = x; | 2419 var v = x; |
| 2403 v; // marker | 2420 v; // marker |
| 2404 } | 2421 } |
| 2405 int x = 3; | 2422 int x = 3; |
| 2406 '''; | 2423 '''; |
| 2407 assertPropagatedAssignedType(code, typeProvider.intType, null); | 2424 assertPropagatedAssignedType(code, typeProvider.intType, null); |
| 2408 assertTypeOfMarkedExpression(code, typeProvider.intType, null); | 2425 assertTypeOfMarkedExpression(code, typeProvider.intType, null); |
| 2409 } | 2426 } |
| 2410 } | 2427 } |
| OLD | NEW |