From dd0fbe8dbfbf3bcdfb154b875924557eb0a8eb58 Mon Sep 17 00:00:00 2001 From: sgrekhov Date: Wed, 15 May 2024 17:34:59 +0200 Subject: [PATCH] #2641. Add tests for multiple top-level declarations named `_` --- .../Wildcards/binding_A02_t07.dart | 2 +- .../Wildcards/unchanged_A04_t01.dart | 75 ++++++++++++++++++ .../Wildcards/unchanged_A04_t02.dart | 75 ++++++++++++++++++ .../Wildcards/unchanged_A04_t03.dart | 75 ++++++++++++++++++ .../Wildcards/unchanged_A04_t04.dart | 75 ++++++++++++++++++ .../Wildcards/unchanged_A04_t05.dart | 74 ++++++++++++++++++ .../Wildcards/unchanged_A04_t06.dart | 74 ++++++++++++++++++ .../Wildcards/unchanged_A04_t07.dart | 74 ++++++++++++++++++ .../Wildcards/unchanged_A04_t08.dart | 75 ++++++++++++++++++ .../Wildcards/unchanged_A04_t09.dart | 76 +++++++++++++++++++ .../Wildcards/unchanged_A04_t10.dart | 76 +++++++++++++++++++ .../Wildcards/unchanged_A04_t11.dart | 75 ++++++++++++++++++ .../Wildcards/unchanged_A05_t01.dart | 58 ++++++++++++++ 13 files changed, 883 insertions(+), 1 deletion(-) create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t01.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t02.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t03.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t04.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t05.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t06.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t07.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t08.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t09.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t10.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A04_t11.dart create mode 100755 LanguageFeatures/Wildcards/unchanged_A05_t01.dart diff --git a/LanguageFeatures/Wildcards/binding_A02_t07.dart b/LanguageFeatures/Wildcards/binding_A02_t07.dart index 5216265061..46a2b1c10e 100644 --- a/LanguageFeatures/Wildcards/binding_A02_t07.dart +++ b/LanguageFeatures/Wildcards/binding_A02_t07.dart @@ -47,7 +47,7 @@ extension Ext on A { class MA = Object with M; main() { - void localFunction<_, _, _ extends num>() => "localFunction"; + String localFunction<_, _, _ extends num>() => "localFunction"; var functionExpression = <_, _, _ extends num>() => "functionExpression"; diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t01.dart b/LanguageFeatures/Wildcards/unchanged_A04_t01.dart new file mode 100755 index 0000000000..1c92e375a3 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t01.dart @@ -0,0 +1,75 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of a top-level +/// variable named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +var _; + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t02.dart b/LanguageFeatures/Wildcards/unchanged_A04_t02.dart new file mode 100755 index 0000000000..55bbe76cfc --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t02.dart @@ -0,0 +1,75 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of a top-level +/// constant named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +const _ = 42; + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t03.dart b/LanguageFeatures/Wildcards/unchanged_A04_t03.dart new file mode 100755 index 0000000000..b09acde871 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t03.dart @@ -0,0 +1,75 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of a top-level +/// function named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +void _() {} + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t04.dart b/LanguageFeatures/Wildcards/unchanged_A04_t04.dart new file mode 100755 index 0000000000..6b77dec65b --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t04.dart @@ -0,0 +1,75 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of a top-level +/// getter named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +int get _ => 0; + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t05.dart b/LanguageFeatures/Wildcards/unchanged_A04_t05.dart new file mode 100755 index 0000000000..3e63433ec2 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t05.dart @@ -0,0 +1,74 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of a class named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +class _ {} + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t06.dart b/LanguageFeatures/Wildcards/unchanged_A04_t06.dart new file mode 100755 index 0000000000..e4dddaae1f --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t06.dart @@ -0,0 +1,74 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of a mixin named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +mixin _ {} + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t07.dart b/LanguageFeatures/Wildcards/unchanged_A04_t07.dart new file mode 100755 index 0000000000..510b786cd4 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t07.dart @@ -0,0 +1,74 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of an enum named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +enum _ {e1;} + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t08.dart b/LanguageFeatures/Wildcards/unchanged_A04_t08.dart new file mode 100755 index 0000000000..5433ecd3f8 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t08.dart @@ -0,0 +1,75 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of an extension type +/// named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +extension type _(int id) {} + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t09.dart b/LanguageFeatures/Wildcards/unchanged_A04_t09.dart new file mode 100755 index 0000000000..09fa0ba8d8 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t09.dart @@ -0,0 +1,76 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of an extension named +/// `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +class B {} +extension _ on B {} + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t10.dart b/LanguageFeatures/Wildcards/unchanged_A04_t10.dart new file mode 100755 index 0000000000..c2500b4016 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t10.dart @@ -0,0 +1,76 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of a type alias named +/// `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +class B {} +typedef _ = B; + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A04_t11.dart b/LanguageFeatures/Wildcards/unchanged_A04_t11.dart new file mode 100755 index 0000000000..53d98dd962 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A04_t11.dart @@ -0,0 +1,75 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that any top-level declaration named `_` is a +/// compile-time error if there is an earlier declaration of a function type +/// named `_`. +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +typedef int _(); + +int _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +const _ = 1; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int _() => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +int get _ => 42; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +mixin _ {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +enum _ {e1;} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +extension type _(int id) {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +class A {} +extension _ on A {} +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef _ = A; +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +typedef void _(); +// ^ +// [analyzer] unspecified +// [cfe] unspecified + +main() { +} diff --git a/LanguageFeatures/Wildcards/unchanged_A05_t01.dart b/LanguageFeatures/Wildcards/unchanged_A05_t01.dart new file mode 100755 index 0000000000..75a338ffe6 --- /dev/null +++ b/LanguageFeatures/Wildcards/unchanged_A05_t01.dart @@ -0,0 +1,58 @@ +// Copyright (c) 2024, 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. + +/// @assertion Other declarations: top-level variables, top-level function +/// names, type names, member names, etc. are unchanged. They can be named `_` +/// as they are today. +/// +/// @description Checks that a member named `_` is still accessible and its +/// value can be used. Test class members +/// @author sgrekhov22@gmail.com + +// SharedOptions=--enable-experiment=wildcard-variables + +import '../../Utils/expect.dart'; + +class C1 { + static int _ = 1; +} + +class C2 { + static int _() => 2; +} + +class C3 { + static int get _ => 3; +} + +class C4 { + static void set _(int v) {} +} + +class C5 { + int _ = 5; +} + +class C6 { + int _() => 6; +} + +class C7 { + int get _ => 7; +} + +class C8 { + void set _(int v) {} +} + +main() { + Expect.equals(1, C1._); + Expect.equals(2, C2._()); + Expect.equals(3, C3._); + C4._ = 42; + Expect.equals(5, C5()._); + Expect.equals(6, C6()._()); + Expect.equals(7, C7()._); + C8()._ = 42; +}