|  | // 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 a few exceptions. Here are | 
|  | // said 'known' identifiers: | 
|  | // | 
|  | //   `async`, `await`, `hide`, `of`, `on`, `show`, `sync`, `yield` | 
|  | // | 
|  | // This test contains various declarations of entities whose name is one of | 
|  | // these known identifiers. | 
|  |  | 
|  | // Top level. | 
|  |  | 
|  | var async; //# 01: ok | 
|  | var await; //# 01: continued | 
|  | var hide; //# 01: continued | 
|  | var of; //# 01: continued | 
|  | var on; //# 01: continued | 
|  | var show; //# 01: continued | 
|  | var sync; //# 01: continued | 
|  | var yield; //# 01: continued | 
|  |  | 
|  | int async; //# 02: ok | 
|  | int await; //# 02: continued | 
|  | int hide; //# 02: continued | 
|  | int of; //# 02: continued | 
|  | int on; //# 02: continued | 
|  | int show; //# 02: continued | 
|  | int sync; //# 02: continued | 
|  | int yield; //# 02: continued | 
|  |  | 
|  | final String async = ""; //# 03: ok | 
|  | final String await = ""; //# 03: continued | 
|  | final String hide = ""; //# 03: continued | 
|  | final String of = ""; //# 03: continued | 
|  | final String on = ""; //# 03: continued | 
|  | final String show = ""; //# 03: continued | 
|  | final String sync = ""; //# 03: continued | 
|  | final String yield = ""; //# 03: continued | 
|  |  | 
|  | const async = null; //# 04: ok | 
|  | const await = null; //# 04: continued | 
|  | const hide = null; //# 04: continued | 
|  | const of = null; //# 04: continued | 
|  | const on = null; //# 04: continued | 
|  | const show = null; //# 04: continued | 
|  | const sync = null; //# 04: continued | 
|  | const yield = null; //# 04: continued | 
|  |  | 
|  | void async() {} //# 05: ok | 
|  | void await() {} //# 05: continued | 
|  | void hide() {} //# 05: continued | 
|  | void of() {} //# 05: continued | 
|  | void on() {} //# 05: continued | 
|  | void show() {} //# 05: continued | 
|  | void sync() {} //# 05: continued | 
|  | void yield() {} //# 05: continued | 
|  |  | 
|  | void f1(async, await, hide, of, on, show, sync, yield) {} | 
|  | void f2([async, await, hide, of, on, show, sync, yield]) {} | 
|  | void f3({async, await, hide, of, on, show, sync, yield}) {} | 
|  |  | 
|  | void f4( | 
|  | int async, | 
|  | int await, | 
|  | int hide, | 
|  | int of, | 
|  | int on, | 
|  | int show, | 
|  | int sync, | 
|  | int yield, | 
|  | ) {} | 
|  |  | 
|  | void f5([ | 
|  | int async, | 
|  | int await, | 
|  | int hide, | 
|  | int of, | 
|  | int on, | 
|  | int show, | 
|  | int sync, | 
|  | int yield, | 
|  | ]) {} | 
|  |  | 
|  | void f6({ | 
|  | int async, | 
|  | int await, | 
|  | int hide, | 
|  | int of, | 
|  | int on, | 
|  | int show, | 
|  | int sync, | 
|  | int yield, | 
|  | }) {} | 
|  |  | 
|  | class A { | 
|  | var async; //# 01: continued | 
|  | var await; //# 01: continued | 
|  | var hide; //# 01: continued | 
|  | var of; //# 01: continued | 
|  | var on; //# 01: continued | 
|  | var show; //# 01: continued | 
|  | var sync; //# 01: continued | 
|  | var yield; //# 01: continued | 
|  |  | 
|  | num async; //# 02: continued | 
|  | num await; //# 02: continued | 
|  | num hide; //# 02: continued | 
|  | num of; //# 02: continued | 
|  | num on; //# 02: continued | 
|  | num show; //# 02: continued | 
|  | num sync; //# 02: continued | 
|  | num yield; //# 02: continued | 
|  |  | 
|  | final String async = ""; //# 03: continued | 
|  | final String await = ""; //# 03: continued | 
|  | final String hide = ""; //# 03: continued | 
|  | final String of = ""; //# 03: continued | 
|  | final String on = ""; //# 03: continued | 
|  | final String show = ""; //# 03: continued | 
|  | final String sync = ""; //# 03: continued | 
|  | final String yield = ""; //# 03: continued | 
|  |  | 
|  | String get async => ""; //# 04: continued | 
|  | String get await => ""; //# 04: continued | 
|  | String get hide => ""; //# 04: continued | 
|  | String get of => ""; //# 04: continued | 
|  | String get on => ""; //# 04: continued | 
|  | String get show => ""; //# 04: continued | 
|  | String get sync => ""; //# 04: continued | 
|  | String get yield => ""; //# 04: continued | 
|  |  | 
|  | void async() {} //# 05: ok | 
|  | void await() {} //# 05: continued | 
|  | void hide() {} //# 05: continued | 
|  | void of() {} //# 05: continued | 
|  | void on() {} //# 05: continued | 
|  | void show() {} //# 05: continued | 
|  | void sync() {} //# 05: continued | 
|  | void yield() {} //# 05: continued | 
|  |  | 
|  | A(); | 
|  |  | 
|  | A.c1( //# 01: continued | 
|  | this.async, //# 01: continued | 
|  | this.await, //# 01: continued | 
|  | this.hide, //# 01: continued | 
|  | this.of, //# 01: continued | 
|  | this.on, //# 01: continued | 
|  | this.show, //# 01: continued | 
|  | this.sync, //# 01: continued | 
|  | this.yield, //# 01: continued | 
|  | ) {} //# 01: continued | 
|  |  | 
|  | A.c2([ //# 01: continued | 
|  | this.async, //# 01: continued | 
|  | this.await, //# 01: continued | 
|  | this.hide, //# 01: continued | 
|  | this.of, //# 01: continued | 
|  | this.on, //# 01: continued | 
|  | this.show, //# 01: continued | 
|  | this.sync, //# 01: continued | 
|  | this.yield, //# 01: continued | 
|  | ]) {} //# 01: continued | 
|  |  | 
|  | A.c3({ //# 01: continued | 
|  | this.async, //# 01: continued | 
|  | this.await, //# 01: continued | 
|  | this.hide, //# 01: continued | 
|  | this.of, //# 01: continued | 
|  | this.on, //# 01: continued | 
|  | this.show, //# 01: continued | 
|  | this.sync, //# 01: continued | 
|  | this.yield, //# 01: continued | 
|  | }) {} //# 01: continued | 
|  |  | 
|  | A.c4( //# 02: continued | 
|  | int this.async, //# 02: continued | 
|  | int this.await, //# 02: continued | 
|  | int this.hide, //# 02: continued | 
|  | int this.of, //# 02: continued | 
|  | int this.on, //# 02: continued | 
|  | int this.show, //# 02: continued | 
|  | int this.sync, //# 02: continued | 
|  | int this.yield, //# 02: continued | 
|  | ) {} //# 02: continued | 
|  |  | 
|  | A.c5([ //# 02: continued | 
|  | int this.async, //# 02: continued | 
|  | int this.await, //# 02: continued | 
|  | int this.hide, //# 02: continued | 
|  | int this.of, //# 02: continued | 
|  | int this.on, //# 02: continued | 
|  | int this.show, //# 02: continued | 
|  | int this.sync, //# 02: continued | 
|  | int this.yield, //# 02: continued | 
|  | ]) {} //# 02: continued | 
|  |  | 
|  | A.c6({ //# 02: continued | 
|  | int this.async, //# 02: continued | 
|  | int this.await, //# 02: continued | 
|  | int this.hide, //# 02: continued | 
|  | int this.of, //# 02: continued | 
|  | int this.on, //# 02: continued | 
|  | int this.show, //# 02: continued | 
|  | int this.sync, //# 02: continued | 
|  | int this.yield, //# 02: continued | 
|  | }) {} //# 02: continued | 
|  |  | 
|  | void method1( | 
|  | covariant int async, | 
|  | covariant int await, | 
|  | covariant int hide, | 
|  | covariant int of, | 
|  | covariant int on, | 
|  | covariant int show, | 
|  | covariant int sync, | 
|  | covariant int yield, | 
|  | ) {} | 
|  |  | 
|  | void method2([ | 
|  | covariant int async, | 
|  | covariant int await, | 
|  | covariant int hide, | 
|  | covariant int of, | 
|  | covariant int on, | 
|  | covariant int show, | 
|  | covariant int sync, | 
|  | covariant int yield, | 
|  | ]) {} | 
|  |  | 
|  | void method3({ | 
|  | covariant int async, | 
|  | covariant int await, | 
|  | covariant int hide, | 
|  | covariant int of, | 
|  | covariant int on, | 
|  | covariant int show, | 
|  | covariant int sync, | 
|  | covariant int yield, | 
|  | }) {} | 
|  | } | 
|  |  | 
|  | class B { | 
|  | static var async; //# 01: continued | 
|  | static var await; //# 01: continued | 
|  | static var hide; //# 01: continued | 
|  | static var of; //# 01: continued | 
|  | static var on; //# 01: continued | 
|  | static var show; //# 01: continued | 
|  | static var sync; //# 01: continued | 
|  | static var yield; //# 01: continued | 
|  |  | 
|  | static num async; //# 02: continued | 
|  | static num await; //# 02: continued | 
|  | static num hide; //# 02: continued | 
|  | static num of; //# 02: continued | 
|  | static num on; //# 02: continued | 
|  | static num show; //# 02: continued | 
|  | static num sync; //# 02: continued | 
|  | static num yield; //# 02: continued | 
|  |  | 
|  | static final String async = ""; //# 03: continued | 
|  | static final String await = ""; //# 03: continued | 
|  | static final String hide = ""; //# 03: continued | 
|  | static final String of = ""; //# 03: continued | 
|  | static final String on = ""; //# 03: continued | 
|  | static final String show = ""; //# 03: continued | 
|  | static final String sync = ""; //# 03: continued | 
|  | static final String yield = ""; //# 03: continued | 
|  |  | 
|  | static const async = null; //# 04: continued | 
|  | static const await = null; //# 04: continued | 
|  | static const hide = null; //# 04: continued | 
|  | static const of = null; //# 04: continued | 
|  | static const on = null; //# 04: continued | 
|  | static const show = null; //# 04: continued | 
|  | static const sync = null; //# 04: continued | 
|  | static const yield = null; //# 04: continued | 
|  |  | 
|  | static get async => null; //# 05: continued | 
|  | static get await => null; //# 05: continued | 
|  | static get hide => null; //# 05: continued | 
|  | static get of => null; //# 05: continued | 
|  | static get on => null; //# 05: continued | 
|  | static get show => null; //# 05: continued | 
|  | static get sync => null; //# 05: continued | 
|  | static get yield => null; //# 05: continued | 
|  | } | 
|  |  | 
|  | main() { | 
|  | /* //# none: ok | 
|  |  | 
|  | // Except none: Use a top-level declaration. | 
|  | var top_async = async; | 
|  | var top_await = await; | 
|  | var top_hide = hide; | 
|  | var top_of = of; | 
|  | var top_on = on; | 
|  | var top_show = show; | 
|  | var top_sync = sync; | 
|  | var top_yield = yield; | 
|  |  | 
|  | // Except none: Use an instance member of A. | 
|  | A a = new A(); | 
|  | var instance_async = a.async; | 
|  | var instance_await = a.await; | 
|  | var instance_hide = a.hide; | 
|  | var instance_of = a.of; | 
|  | var instance_on = a.on; | 
|  | var instance_show = a.show; | 
|  | var instance_sync = a.sync; | 
|  | var instance_yield = a.yield; | 
|  |  | 
|  | // Except none: Use a static member of B. | 
|  |  | 
|  | var static_async = B.async; | 
|  | var static_await = B.await; | 
|  | var static_hide = B.hide; | 
|  | var static_of = B.of; | 
|  | var static_on = B.on; | 
|  | var static_show = B.show; | 
|  | var static_sync = B.sync; | 
|  | var static_yield = B.yield; | 
|  |  | 
|  | */ //# none: continued | 
|  |  | 
|  | var a1 = new A.c1(1, 1, 1, 1, 1, 1, 1, 1); //# 01: continued | 
|  | var a2 = new A.c2(); //# 01: continued | 
|  | var a3 = new A.c3( //# 01: continued | 
|  | async: 1, //# 01: continued | 
|  | await: 1, //# 01: continued | 
|  | hide: 1, //# 01: continued | 
|  | of: 1, //# 01: continued | 
|  | on: 1, //# 01: continued | 
|  | show: 1, //# 01: continued | 
|  | sync: 1, //# 01: continued | 
|  | yield: 1, //# 01: continued | 
|  | ); //# 01: continued | 
|  |  | 
|  | var a4 = new A.c4(1, 1, 1, 1, 1, 1, 1, 1); //# 02: continued | 
|  | var a5 = new A.c5(); //# 02: continued | 
|  | var a6 = new A.c6( //# 02: continued | 
|  | async: 1, //# 02: continued | 
|  | await: 1, //# 02: continued | 
|  | hide: 1, //# 02: continued | 
|  | of: 1, //# 02: continued | 
|  | on: 1, //# 02: continued | 
|  | show: 1, //# 02: continued | 
|  | sync: 1, //# 02: continued | 
|  | yield: 1, //# 02: continued | 
|  | ); //# 02: continued | 
|  |  | 
|  | var aa = new A(); | 
|  | aa.method1(1, 1, 1, 1, 1, 1, 1, 1); | 
|  | aa.method2(); | 
|  | aa.method3( | 
|  | async: 1, | 
|  | await: 1, | 
|  | hide: 1, | 
|  | of: 1, | 
|  | on: 1, | 
|  | show: 1, | 
|  | sync: 1, | 
|  | yield: 1, | 
|  | ); | 
|  | } |