OLD | NEW |
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 // Test async/await syntax. | 5 // Test async/await syntax. |
6 | 6 |
7 import 'dart:async' show Stream; | 7 import 'dart:async' show Stream; |
8 | 8 |
9 var yield = 0; | 9 var yield = 0; |
10 var await = 0; | 10 var await = 0; |
11 get st => new Stream.fromIterable([]); | 11 get st => new Stream.fromIterable([]); |
12 | 12 |
13 a01a() async => null; /// a01a: ok | 13 a01a() async => null; /// a01a: ok |
14 a01b() async* => null; /// a01b: compile-time error | 14 a01b() async* => null; /// a01b: compile-time error |
15 a01c() sync* => null; /// a01c: compile-time error | 15 a01c() sync* => null; /// a01c: compile-time error |
| 16 a01d() async => yield 5; /// a01d: compile-time error |
16 a02a() async {} /// a02a: ok | 17 a02a() async {} /// a02a: ok |
17 a03a() async* {} /// a03a: ok | 18 a03a() async* {} /// a03a: ok |
18 a03b() async * {} /// a03b: ok | 19 a03b() async * {} /// a03b: ok |
19 a04a() sync* {} /// a04a: ok | 20 a04a() sync* {} /// a04a: ok |
20 a04b() sync {} /// a04b: compile-time error | 21 a04b() sync {} /// a04b: compile-time error |
21 a04c() sync * {} /// a04c: ok | 22 a04c() sync * {} /// a04c: ok |
22 a05a() async { await 0; } /// a05a: ok | 23 a05a() async { await 0; } /// a05a: ok |
23 a05b() async { /// a05b: ok | 24 a05b() async { /// a05b: ok |
24 await(a) {}; /// a05b: continued | 25 await(a) {}; /// a05b: continued |
25 await(0); /// a05b: continued | 26 await(0); /// a05b: continued |
26 } /// a05b: continued | 27 } /// a05b: continued |
27 a05c() { /// a05c: ok | 28 a05c() { /// a05c: ok |
28 await(a) {}; /// a05c: continued | 29 await(a) {}; /// a05c: continued |
29 await(0); /// a05c: continued | 30 await(0); /// a05c: continued |
30 } /// a05c: continued | 31 } /// a05c: continued |
31 a05d() async { /// a05d: compile-time error | 32 a05d() async { /// a05d: compile-time error |
32 await(a) {} /// a05d: continued | 33 await(a) {} /// a05d: continued |
33 await(0); /// a05d: continued | 34 await(0); /// a05d: continued |
34 } /// a05d: continued | 35 } /// a05d: continued |
35 a05e() { /// a05e: ok | 36 a05e() { /// a05e: ok |
36 await(a) {} /// a05e: continued | 37 await(a) {} /// a05e: continued |
37 await(0); /// a05e: continued | 38 await(0); /// a05e: continued |
38 } /// a05e: continued | 39 } /// a05e: continued |
39 a05f() async { /// a05f: compile-time error | 40 a05f() async { /// a05f: compile-time error |
40 var await = (a) {}; /// a05f: continued | 41 var await = (a) {}; /// a05f: continued |
41 await(0); /// a05f: continued | 42 await(0); /// a05f: continued |
42 } /// a05f: continued | 43 } /// a05f: continued |
| 44 a05g() async { /// a05g: continued |
| 45 yield 5; /// a05g: compile-time error |
| 46 } /// a05g: continued |
| 47 a05h() async { /// a05h: continued |
| 48 yield* st; /// a05h: compile-time error |
| 49 } /// a05h: continued |
43 a06a() async { await for (var o in st) {} } /// a06a: ok | 50 a06a() async { await for (var o in st) {} } /// a06a: ok |
44 a06b() sync* { await for (var o in st) {} } /// a06b: compile-time error | 51 a06b() sync* { await for (var o in st) {} } /// a06b: compile-time error |
45 a07a() sync* { yield 0; } /// a07a: ok | 52 a07a() sync* { yield 0; } /// a07a: ok |
46 a07b() sync { yield 0; } /// a07b: compile-time error | 53 a07b() sync { yield 0; } /// a07b: compile-time error |
47 a08a() sync* { yield* []; } /// a08a: ok | 54 a08a() sync* { yield* []; } /// a08a: ok |
48 a08b() sync { yield 0; } /// a08b: compile-time error | 55 a08b() sync { yield 0; } /// a08b: compile-time error |
49 a09a() async* { yield 0; } /// a09a: ok | 56 a09a() async* { yield 0; } /// a09a: ok |
50 a10a() async* { yield* []; } /// a10a: static type warning | 57 a10a() async* { yield* []; } /// a10a: static type warning |
51 | 58 |
52 get sync sync {} /// a11a: compile-time error | 59 get sync sync {} /// a11a: compile-time error |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 b03a() async* {} /// b03a: ok | 116 b03a() async* {} /// b03a: ok |
110 b04a() sync* {} /// b04a: ok | 117 b04a() sync* {} /// b04a: ok |
111 b04b() sync {} /// b04b: compile-time error | 118 b04b() sync {} /// b04b: compile-time error |
112 b05a() async { await 0; } /// b05a: ok | 119 b05a() async { await 0; } /// b05a: ok |
113 b06a() async { await for (var o in st) {} } /// b06a: ok | 120 b06a() async { await for (var o in st) {} } /// b06a: ok |
114 b06b() async { await for ( ; ; ) {} } /// b06b: compile-time error | 121 b06b() async { await for ( ; ; ) {} } /// b06b: compile-time error |
115 b07a() sync* { yield 0; } /// b07a: ok | 122 b07a() sync* { yield 0; } /// b07a: ok |
116 b08a() sync* { yield* []; } /// b08a: ok | 123 b08a() sync* { yield* []; } /// b08a: ok |
117 b09a() async* { yield 0; } /// b09a: ok | 124 b09a() async* { yield 0; } /// b09a: ok |
118 b10a() async* { yield* []; } /// b10a: static type warning | 125 b10a() async* { yield* []; } /// b10a: static type warning |
| 126 b10b() async { yield 0; } /// b10b: compile-time error |
119 | 127 |
120 get sync sync {} /// b11a: compile-time error | 128 get sync sync {} /// b11a: compile-time error |
121 get sync sync* {} /// b11b: ok | 129 get sync sync* {} /// b11b: ok |
122 get async async {} /// b11c: ok | 130 get async async {} /// b11c: ok |
123 get async async* {} /// b11d: ok | 131 get async async* {} /// b11d: ok |
124 | 132 |
125 get sync {} /// b12a: ok | 133 get sync {} /// b12a: ok |
126 get sync* {} /// b12b: compile-time error | 134 get sync* {} /// b12b: compile-time error |
127 get async {} /// b12c: ok | 135 get async {} /// b12c: ok |
128 get async* {} /// b12d: compile-time error | 136 get async* {} /// b12d: compile-time error |
(...skipping 24 matching lines...) Expand all Loading... |
153 c02a() async {} c02a(); /// c02a: ok | 161 c02a() async {} c02a(); /// c02a: ok |
154 c03a() async* {} c03a(); /// c03a: ok | 162 c03a() async* {} c03a(); /// c03a: ok |
155 c04a() sync* {} c04a(); /// c04a: ok | 163 c04a() sync* {} c04a(); /// c04a: ok |
156 c04b() sync {} c04b(); /// c04b: compile-time er
ror | 164 c04b() sync {} c04b(); /// c04b: compile-time er
ror |
157 c05a() async { await 0; } c05a(); /// c05a: ok | 165 c05a() async { await 0; } c05a(); /// c05a: ok |
158 c06a() async { await for (var o in st) {} } c06a(); /// c06a: ok | 166 c06a() async { await for (var o in st) {} } c06a(); /// c06a: ok |
159 c07a() sync* { yield 0; } c07a(); /// c07a: ok | 167 c07a() sync* { yield 0; } c07a(); /// c07a: ok |
160 c08a() sync* { yield* []; } c08a(); /// c08a: ok | 168 c08a() sync* { yield* []; } c08a(); /// c08a: ok |
161 c09a() async* { yield 0; } c09a(); /// c09a: ok | 169 c09a() async* { yield 0; } c09a(); /// c09a: ok |
162 c10a() async* { yield* []; } c10a(); /// c10a: static type war
ning | 170 c10a() async* { yield* []; } c10a(); /// c10a: static type war
ning |
| 171 c11a() async { yield -5; } c11a(); /// c11a: compile-time er
ror |
| 172 c11b() async { yield* st; } c11b(); /// c11b: compile-time er
ror |
163 } | 173 } |
164 | 174 |
165 method2() { | 175 method2() { |
166 var d01a = () async => null; d01a(); /// d01a: ok | 176 var d01a = () async => null; d01a(); /// d01a: ok |
167 var d01b = () async* => null; d01b(); /// d01b: compile
-time error | 177 var d01b = () async* => null; d01b(); /// d01b: compile
-time error |
168 var d01c = () sync* => null; d01c(); /// d01c: compile
-time error | 178 var d01c = () sync* => null; d01c(); /// d01c: compile
-time error |
169 var d02a = () async {}; d02a(); /// d02a: ok | 179 var d02a = () async {}; d02a(); /// d02a: ok |
170 var d03a = () async* {}; d03a(); /// d03a: ok | 180 var d03a = () async* {}; d03a(); /// d03a: ok |
171 var d04a = () sync* {}; d04a(); /// d04a: ok | 181 var d04a = () sync* {}; d04a(); /// d04a: ok |
172 var d04b = () sync {}; d04b(); /// d04b: compile
-time error | 182 var d04b = () sync {}; d04b(); /// d04b: compile
-time error |
(...skipping 17 matching lines...) Expand all Loading... |
190 c = new C.e4(); /// e4: continued | 200 c = new C.e4(); /// e4: continued |
191 c = new C.e5(); /// e5: continued | 201 c = new C.e5(); /// e5: continued |
192 c = new C.e6(); /// e6: continued | 202 c = new C.e6(); /// e6: continued |
193 c = new C.e7(); /// e7: continued | 203 c = new C.e7(); /// e7: continued |
194 c = new C.e8(); /// e8: continued | 204 c = new C.e8(); /// e8: continued |
195 c = new C.e9(); /// e9: continued | 205 c = new C.e9(); /// e9: continued |
196 | 206 |
197 a01a(); /// a01a: continued | 207 a01a(); /// a01a: continued |
198 a01b(); /// a01b: continued | 208 a01b(); /// a01b: continued |
199 a01c(); /// a01c: continued | 209 a01c(); /// a01c: continued |
| 210 a01d(); /// a01d: continued |
200 a02a(); /// a02a: continued | 211 a02a(); /// a02a: continued |
201 a03a(); /// a03a: continued | 212 a03a(); /// a03a: continued |
202 a03b(); /// a03b: continued | 213 a03b(); /// a03b: continued |
203 a04a(); /// a04a: continued | 214 a04a(); /// a04a: continued |
204 a04b(); /// a04b: continued | 215 a04b(); /// a04b: continued |
205 a04c(); /// a04c: continued | 216 a04c(); /// a04c: continued |
206 a05a(); /// a05a: continued | 217 a05a(); /// a05a: continued |
207 a05b(); /// a05b: continued | 218 a05b(); /// a05b: continued |
208 a05c(); /// a05c: continued | 219 a05c(); /// a05c: continued |
209 a05d(); /// a05d: continued | 220 a05d(); /// a05d: continued |
210 a05e(); /// a05e: continued | 221 a05e(); /// a05e: continued |
211 a05f(); /// a05f: continued | 222 a05f(); /// a05f: continued |
| 223 a05g(); /// a05g: continued |
| 224 a05h(); /// a05h: continued |
212 a06a(); /// a06a: continued | 225 a06a(); /// a06a: continued |
213 a06b(); /// a06b: continued | 226 a06b(); /// a06b: continued |
214 a07a(); /// a07a: continued | 227 a07a(); /// a07a: continued |
215 a07b(); /// a07b: continued | 228 a07b(); /// a07b: continued |
216 a08a(); /// a08a: continued | 229 a08a(); /// a08a: continued |
217 a08b(); /// a08b: continued | 230 a08b(); /// a08b: continued |
218 a09a(); /// a09a: continued | 231 a09a(); /// a09a: continued |
219 a10a(); /// a10a: continued | 232 a10a(); /// a10a: continued |
220 a = sync; /// a11a: continued | 233 a = sync; /// a11a: continued |
221 a = sync; /// a11b: continued | 234 a = sync; /// a11b: continued |
(...skipping 30 matching lines...) Expand all Loading... |
252 c.b03a(); /// b03a: continued | 265 c.b03a(); /// b03a: continued |
253 c.b04a(); /// b04a: continued | 266 c.b04a(); /// b04a: continued |
254 c.b04b(); /// b04b: continued | 267 c.b04b(); /// b04b: continued |
255 c.b05a(); /// b05a: continued | 268 c.b05a(); /// b05a: continued |
256 c.b06a(); /// b06a: continued | 269 c.b06a(); /// b06a: continued |
257 c.b06b(); /// b06b: continued | 270 c.b06b(); /// b06b: continued |
258 c.b07a(); /// b07a: continued | 271 c.b07a(); /// b07a: continued |
259 c.b08a(); /// b08a: continued | 272 c.b08a(); /// b08a: continued |
260 c.b09a(); /// b09a: continued | 273 c.b09a(); /// b09a: continued |
261 c.b10a(); /// b10a: continued | 274 c.b10a(); /// b10a: continued |
| 275 c.b10b(); /// b10b: continued |
262 a = c.sync; /// b11a: continued | 276 a = c.sync; /// b11a: continued |
263 a = c.sync; /// b11b: continued | 277 a = c.sync; /// b11b: continued |
264 a = c.async; /// b11c: continued | 278 a = c.async; /// b11c: continued |
265 a = c.async; /// b11d: continued | 279 a = c.async; /// b11d: continued |
266 a = c.sync; /// b12a: continued | 280 a = c.sync; /// b12a: continued |
267 a = c.sync; /// b12b: continued | 281 a = c.sync; /// b12b: continued |
268 a = c.async; /// b12c: continued | 282 a = c.async; /// b12c: continued |
269 a = c.async; /// b12d: continued | 283 a = c.async; /// b12d: continued |
270 a = c.b12e; /// b12e: continued | 284 a = c.b12e; /// b12e: continued |
271 a = c.b12f; /// b12f: continued | 285 a = c.b12f; /// b12f: continued |
272 a = c.b12g; /// b12g: continued | 286 a = c.b12g; /// b12g: continued |
273 a = c.sync; /// b13a: continued | 287 a = c.sync; /// b13a: continued |
274 a = c.sync; /// b13b: continued | 288 a = c.sync; /// b13b: continued |
275 a = c.async; /// b13c: continued | 289 a = c.async; /// b13c: continued |
276 a = c.async; /// b13d: continued | 290 a = c.async; /// b13d: continued |
277 a = c.sync; /// b14a: continued | 291 a = c.sync; /// b14a: continued |
278 a = c.sync; /// b14b: continued | 292 a = c.sync; /// b14b: continued |
279 a = c.async; /// b14c: continued | 293 a = c.async; /// b14c: continued |
280 a = c.async; /// b14d: continued | 294 a = c.async; /// b14d: continued |
281 c.sync(); /// b15a: continued | 295 c.sync(); /// b15a: continued |
282 c.sync(); /// b15b: continued | 296 c.sync(); /// b15b: continued |
283 c.async(); /// b15c: continued | 297 c.async(); /// b15c: continued |
284 c.async(); /// b15d: continued | 298 c.async(); /// b15d: continued |
285 | 299 |
286 method1(); | 300 method1(); |
287 method2(); | 301 method2(); |
288 } | 302 } |
OLD | NEW |