blob: ea6084c69cf54a2f976bd30bd06de9703a36d6a7 [file] [log] [blame]
// 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();
}