| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // The identifiers listed below are mentioned in the grammar, but none of |
| // them is a reserved word or a built-in identifier. Such an identifier can |
| // be used just like all other identifiers, with the exceptions mentioned |
| // below. Here are said 'known' identifiers: |
| // |
| // `async`, `await`, `hide`, `of`, `on`, `show`, `sync`, `yield` |
| // |
| // The following exceptions apply: |
| // |
| // It is a compile-time error to use `async`, `await`, or `yield` as an |
| // identifier in the body of a function marked `async`, `async*`, or |
| // `sync*`. |
| // |
| // It is a compile-time error if an asynchronous for-in appears inside a |
| // synchronous function. |
| |
| import 'dart:async'; |
| |
| Future<int> f1() async { |
| int async = 1; //# 01: syntax error |
| int await = 1; //# 02: syntax error |
| int yield = 1; //# 03: syntax error |
| |
| Stream<int> s = new Stream<int>.fromFuture(new Future<int>.value(1)); |
| await for (int i in s) { |
| return i + 1; |
| } |
| } |
| |
| Stream<int> f2() async* { |
| int async = 1; //# 04: syntax error |
| int await = 1; //# 05: syntax error |
| int yield = 1; //# 06: syntax error |
| |
| Stream<int> s = new Stream<int>.fromFuture(new Future<int>.value(1)); |
| await for (var i in s) { |
| yield i + 1; |
| } |
| } |
| |
| Iterable<int> f3() sync* { |
| int async = 1; //# 07: syntax error |
| int await = 1; //# 08: syntax error |
| int yield = 1; //# 09: syntax error |
| |
| Stream<int> s = new Stream<int>.fromFuture(new Future<int>.value(1)); |
| await for (int i in s) { //# 10: compile-time error |
| yield i + 1; //# 10: continued |
| } //# 10: continued |
| } |
| |
| int f4() { |
| int async = 1; |
| int await = 1; |
| int yield = 1; |
| |
| Stream s = new Stream<int>.fromFuture(new Future<int>.value(1)); |
| await for (int i in s) { //# 11: compile-time error |
| return i + 1; //# 11: continued |
| } //# 11: continued |
| |
| } |
| |
| main() { |
| Future<int> f = f1(); |
| Stream s = f2(); |
| Iterable<int> i = f3(); |
| int x = f4(); |
| } |