// 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, ); }