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

Side by Side Diff: tests/language/async_return_types_test.dart

Issue 1847953002: Report wrong async function result type as type error in checked mode (Fixes #26133). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: address comment Created 4 years, 7 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 | « runtime/vm/parser.cc ('k') | tests/language/language_dart2js.status » ('j') | 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 import "dart:async"; 5 import "dart:async";
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 import "package:async_helper/async_helper.dart"; 7 import "package:async_helper/async_helper.dart";
8 8
9 Future foo1() async { 9 Future foo1() async {
10 return 3; 10 return 3;
11 } 11 }
12 12
13 Future<int> foo2() async { 13 Future<int> foo2() async {
14 return 3; 14 return 3;
15 } 15 }
16 16
17 Future<int> /// wrongTypeParameter: static type warning 17 Future<int> /// wrongTypeParameter: static type warning, dynamic type error
18 foo3() async { 18 foo3() async {
19 return "String"; 19 return "String";
20 } 20 }
21 21
22 // Future<int, String> is treated like Future<dynamic> 22 // Future<int, String> is treated like Future<dynamic>
23 Future<int, String> /// tooManyTypeParameters: static type warning 23 Future<int, String> /// tooManyTypeParameters: static type warning
24 foo4() async { 24 foo4() async {
25 return "String"; 25 return "String";
26 } 26 }
27 27
28 int /// wrongReturnType: static type warning, dynamic type error 28 int /// wrongReturnType: static type warning, dynamic type error
29 foo5() async { 29 foo5() async {
30 return 3; 30 return 3;
31 } 31 }
32 32
33 Future<int> foo6() async { 33 Future<int> foo6() async {
34 // This is fine, the future is flattened 34 // This is fine, the future is flattened
35 return new Future<int>.value(3); 35 return new Future<int>.value(3);
36 } 36 }
37 37
38 Future<Future<int>> /// nestedFuture: static type warning 38 Future<Future<int>> /// nestedFuture: static type warning, dynamic type error
39 foo7() async { 39 foo7() async {
40 return new Future<int>.value(3); 40 return new Future<int>.value(3);
41 } 41 }
42 42
43 43
44 Iterable<int> foo8() sync* { 44 Iterable<int> foo8() sync* {
45 yield 1; 45 yield 1;
46 // Can only have valueless return in sync* functions. 46 // Can only have valueless return in sync* functions.
47 return 47 return
48 8 /// return_value_sync_star: compile-time error 48 8 /// return_value_sync_star: compile-time error
(...skipping 16 matching lines...) Expand all
65 Expect.equals(3, await foo5()); 65 Expect.equals(3, await foo5());
66 Expect.equals(3, await await foo6()); 66 Expect.equals(3, await await foo6());
67 Expect.equals(3, await await foo7()); 67 Expect.equals(3, await await foo7());
68 Expect.listEquals([1], foo8().toList()); 68 Expect.listEquals([1], foo8().toList());
69 Expect.listEquals([1], await foo9().toList()); 69 Expect.listEquals([1], await foo9().toList());
70 } 70 }
71 71
72 main() { 72 main() {
73 asyncTest(test); 73 asyncTest(test);
74 } 74 }
OLDNEW
« no previous file with comments | « runtime/vm/parser.cc ('k') | tests/language/language_dart2js.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698