Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Side by Side Diff: pkg/analyzer/test/generated/strong_mode_test.dart

Issue 2456803004: fixes #27586, prefer context type in generic inference (Closed)
Patch Set: wip Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; 10 import 'package:analyzer/dart/ast/standard_resolution_map.dart';
(...skipping 1432 matching lines...) Expand 10 before | Expand all | Expand 10 after
1443 Expression exp = (statements[i] as ExpressionStatement).expression; 1443 Expression exp = (statements[i] as ExpressionStatement).expression;
1444 expect(exp.staticType, typeProvider.dynamicType); 1444 expect(exp.staticType, typeProvider.dynamicType);
1445 } 1445 }
1446 } 1446 }
1447 1447
1448 checkBody("C"); 1448 checkBody("C");
1449 checkBody("D"); 1449 checkBody("D");
1450 } 1450 }
1451 1451
1452 test_genericFunction_upwardsAndDownwards() async { 1452 test_genericFunction_upwardsAndDownwards() async {
1453 // Regression tests for https://github.com/dart-lang/sdk/issues/27151. 1453 // Regression tests for https://github.com/dart-lang/sdk/issues/27586.
1454 await resolveTestUnit(r'List<num> x = [1, 2];'); 1454 await resolveTestUnit(r'List<num> x = [1, 2];');
1455 expectInitializerType('x', 'List<int>'); 1455 expectInitializerType('x', 'List<num>');
1456 } 1456 }
1457 1457
1458 test_genericFunction_upwardsAndDownwards_Object() async {
1459 // Regression tests for https://github.com/dart-lang/sdk/issues/27625.
1460 await resolveTestUnit(r'''
1461 List<Object> aaa = [];
1462 List<Object> bbb = [1, 2, 3];
1463 List<Object> ccc = [null];
1464 List<Object> ddd = [1 as dynamic];
1465 List<Object> eee = [new Object()];
1466 ''');
1467 expectInitializerType('aaa', 'List<Object>');
1468 expectInitializerType('bbb', 'List<Object>');
1469 expectInitializerType('ccc', 'List<Object>');
1470 expectInitializerType('ddd', 'List<Object>');
1471 expectInitializerType('eee', 'List<Object>');
1472 }
1473
1474
1458 test_genericMethod() async { 1475 test_genericMethod() async {
1459 await resolveTestUnit(r''' 1476 await resolveTestUnit(r'''
1460 class C<E> { 1477 class C<E> {
1461 List/*<T>*/ f/*<T>*/(E e) => null; 1478 List/*<T>*/ f/*<T>*/(E e) => null;
1462 } 1479 }
1463 main() { 1480 main() {
1464 C<String> cOfString; 1481 C<String> cOfString;
1465 } 1482 }
1466 '''); 1483 ''');
1467 expectFunctionType('f', '<T>(E) → List<T>', 1484 expectFunctionType('f', '<T>(E) → List<T>',
(...skipping 944 matching lines...) Expand 10 before | Expand all | Expand 10 after
2412 main() { 2429 main() {
2413 var v = x; 2430 var v = x;
2414 v; // marker 2431 v; // marker
2415 } 2432 }
2416 int x = 3; 2433 int x = 3;
2417 '''; 2434 ''';
2418 await assertPropagatedAssignedType(code, typeProvider.intType, null); 2435 await assertPropagatedAssignedType(code, typeProvider.intType, null);
2419 await assertTypeOfMarkedExpression(code, typeProvider.intType, null); 2436 await assertTypeOfMarkedExpression(code, typeProvider.intType, null);
2420 } 2437 }
2421 } 2438 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698