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

Side by Side Diff: pkg/analyzer/test/src/task/strong/checker_test.dart

Issue 1720433002: fixes #25477, downward inference of generic methods (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: fix breakage caused by refactoring Created 4 years, 10 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) 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 // TODO(jmesserly): this file needs to be refactored, it's a port from 5 // TODO(jmesserly): this file needs to be refactored, it's a port from
6 // package:dev_compiler's tests 6 // package:dev_compiler's tests
7 /// General type checking tests 7 /// General type checking tests
8 library analyzer.test.src.task.strong.checker_test; 8 library analyzer.test.src.task.strong.checker_test;
9 9
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
(...skipping 1720 matching lines...) Expand 10 before | Expand all | Expand 10 after
1731 /*=T*/ foo/*<T>*/(/*=T*/ x, /*=T*/ y) => x; 1731 /*=T*/ foo/*<T>*/(/*=T*/ x, /*=T*/ y) => x;
1732 /*=T*/ bar/*<T>*/({/*=T*/ x, /*=T*/ y}) => x; 1732 /*=T*/ bar/*<T>*/({/*=T*/ x, /*=T*/ y}) => x;
1733 1733
1734 main() { 1734 main() {
1735 String x; 1735 String x;
1736 // resolving these shouldn't crash. 1736 // resolving these shouldn't crash.
1737 foo/*warning:EXTRA_POSITIONAL_ARGUMENTS*/(1, 2, 3); 1737 foo/*warning:EXTRA_POSITIONAL_ARGUMENTS*/(1, 2, 3);
1738 x = foo/*warning:EXTRA_POSITIONAL_ARGUMENTS*/('1', '2', '3'); 1738 x = foo/*warning:EXTRA_POSITIONAL_ARGUMENTS*/('1', '2', '3');
1739 foo/*warning:NOT_ENOUGH_REQUIRED_ARGUMENTS*/(1); 1739 foo/*warning:NOT_ENOUGH_REQUIRED_ARGUMENTS*/(1);
1740 x = foo/*warning:NOT_ENOUGH_REQUIRED_ARGUMENTS*/('1'); 1740 x = foo/*warning:NOT_ENOUGH_REQUIRED_ARGUMENTS*/('1');
1741 x = /*severe:STATIC_TYPE_ERROR*/foo/*warning:EXTRA_POSITIONAL_ARGUME NTS*/(1, 2, 3); 1741 x = /*info:DYNAMIC_CAST*/foo/*warning:EXTRA_POSITIONAL_ARGUMENTS*/(1 , 2, 3);
1742 x = /*severe:STATIC_TYPE_ERROR*/foo/*warning:NOT_ENOUGH_REQUIRED_ARG UMENTS*/(1); 1742 x = /*info:DYNAMIC_CAST*/foo/*warning:NOT_ENOUGH_REQUIRED_ARGUMENTS* /(1);
1743 1743
1744 // named arguments 1744 // named arguments
1745 bar(y: 1, x: 2, /*warning:UNDEFINED_NAMED_PARAMETER*/z: 3); 1745 bar(y: 1, x: 2, /*warning:UNDEFINED_NAMED_PARAMETER*/z: 3);
1746 x = bar(/*warning:UNDEFINED_NAMED_PARAMETER*/z: '1', x: '2', y: '3') ; 1746 x = bar(/*warning:UNDEFINED_NAMED_PARAMETER*/z: '1', x: '2', y: '3') ;
1747 bar(y: 1); 1747 bar(y: 1);
1748 x = bar(x: '1', /*warning:UNDEFINED_NAMED_PARAMETER*/z: 42); 1748 x = bar(x: '1', /*warning:UNDEFINED_NAMED_PARAMETER*/z: 42);
1749 x = /*severe:STATIC_TYPE_ERROR*/bar(y: 1, x: 2, /*warning:UNDEFINED_ NAMED_PARAMETER*/z: 3); 1749 x = /*info:DYNAMIC_CAST*/bar(y: 1, x: 2, /*warning:UNDEFINED_NAMED_P ARAMETER*/z: 3);
1750 x = /*severe:STATIC_TYPE_ERROR*/bar(x: 1); 1750 x = /*info:DYNAMIC_CAST*/bar(x: 1);
1751 } 1751 }
1752 '''); 1752 ''');
1753 }); 1753 });
1754 1754
1755 test('type promotion from dynamic', () { 1755 test('type promotion from dynamic', () {
1756 checkFile(r''' 1756 checkFile(r'''
1757 f() { 1757 f() {
1758 dynamic x; 1758 dynamic x;
1759 if (x is int) { 1759 if (x is int) {
1760 int y = x; 1760 int y = x;
(...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after
2873 2873
2874 baz1() sync* { yield* (/*info:DYNAMIC_CAST*/x); } 2874 baz1() sync* { yield* (/*info:DYNAMIC_CAST*/x); }
2875 Iterable baz2() sync* { yield* (/*info:DYNAMIC_CAST*/x); } 2875 Iterable baz2() sync* { yield* (/*info:DYNAMIC_CAST*/x); }
2876 Iterable<int> baz3() sync* { yield* (/*warning:DOWN_CAST_COMPOSITE*/x); } 2876 Iterable<int> baz3() sync* { yield* (/*warning:DOWN_CAST_COMPOSITE*/x); }
2877 Iterable<int> baz4() sync* { yield* new Iterable<int>(); } 2877 Iterable<int> baz4() sync* { yield* new Iterable<int>(); }
2878 Iterable<int> baz5() sync* { yield* (/*info:INFERRED_TYPE_ALLOCATION*/ne w Iterable()); } 2878 Iterable<int> baz5() sync* { yield* (/*info:INFERRED_TYPE_ALLOCATION*/ne w Iterable()); }
2879 '''); 2879 ''');
2880 }); 2880 });
2881 }); 2881 });
2882 } 2882 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698