// Copyright (c) 2014, 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. import 'dart:async'; import 'package:expect/expect.dart'; get await => 4; // For functions that are declared with the async modifier we treat await as // keyword. test0() async { var x = await 7; Expect.equals(7, x); var await = 1; // ^^^^^ // [analyzer] SYNTACTIC_ERROR.ASYNC_KEYWORD_USED_AS_IDENTIFIER // [cfe] 'await' can't be used as an identifier in 'async', 'async*', or 'sync*' methods. } test1() async { var x = await 9; Expect.equals(9, x); var y = await; // ^ // [analyzer] SYNTACTIC_ERROR.MISSING_IDENTIFIER // [cfe] Expected an identifier, but got ';'. } // For functions that are not declared with the async modifier we allow await to // be used as an identifier. test2() { var y = await; Expect.equals(4, y); var x = await 1; // ^^^^^ // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN // [cfe] Expected ';' after this. } test3() { var await = 3; Expect.equals(3, await); var x = await 1; // ^^^^^ // [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN // [cfe] Expected ';' after this. } main() { test0(); test1(); test2(); test3(); }