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

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

Issue 1627503002: remove obsolete UninferredClosure type (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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
« no previous file with comments | « pkg/analyzer/lib/src/task/strong/info.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 946 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 testChecker('Function typing and subtyping: void', { 957 testChecker('Function typing and subtyping: void', {
958 '/main.dart': ''' 958 '/main.dart': '''
959 959
960 class A { 960 class A {
961 void bar() => null; 961 void bar() => null;
962 void foo() => bar; // allowed 962 void foo() => bar; // allowed
963 } 963 }
964 ''' 964 '''
965 }); 965 });
966 966
967 testChecker('Function subtyping: uninferred closure', {
968 '/main.dart': '''
969 typedef num Num2Num(num x);
970 void main() {
971 Num2Num g = /*info:INFERRED_TYPE_CLOSURE,severe:STATIC_TYPE_ERROR*/(int x) { return x; };
972 print(g(42));
973 }
974 '''
975 });
976
967 testChecker('Relaxed casts', { 977 testChecker('Relaxed casts', {
968 '/main.dart': ''' 978 '/main.dart': '''
969 979
970 class A {} 980 class A {}
971 981
972 class L<T> {} 982 class L<T> {}
973 class M<T> extends L<T> {} 983 class M<T> extends L<T> {}
974 // L<dynamic|Object> 984 // L<dynamic|Object>
975 // / \ 985 // / \
976 // M<dynamic|Object> L<A> 986 // M<dynamic|Object> L<A>
(...skipping 1575 matching lines...) Expand 10 before | Expand all | Expand 10 after
2552 2562
2553 baz1() sync* { yield* (/*info:DYNAMIC_CAST*/x); } 2563 baz1() sync* { yield* (/*info:DYNAMIC_CAST*/x); }
2554 Iterable baz2() sync* { yield* (/*info:DYNAMIC_CAST*/x); } 2564 Iterable baz2() sync* { yield* (/*info:DYNAMIC_CAST*/x); }
2555 Iterable<int> baz3() sync* { yield* (/*warning:DOWN_CAST_COMPOSITE*/x); } 2565 Iterable<int> baz3() sync* { yield* (/*warning:DOWN_CAST_COMPOSITE*/x); }
2556 Iterable<int> baz4() sync* { yield* new Iterable<int>(); } 2566 Iterable<int> baz4() sync* { yield* new Iterable<int>(); }
2557 Iterable<int> baz5() sync* { yield* (/*info:INFERRED_TYPE_ALLOCATION*/ne w Iterable()); } 2567 Iterable<int> baz5() sync* { yield* (/*info:INFERRED_TYPE_ALLOCATION*/ne w Iterable()); }
2558 ''' 2568 '''
2559 }); 2569 });
2560 }); 2570 });
2561 } 2571 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/task/strong/info.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698