| # Copyright (c) 2021, 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. | |
| sources: | | |
| class Foo { | |
| int what; | |
| Foo() : what = 0; | |
| Foo.publicNamed() : what = 1; | |
| Foo._privateNamed() : what = 2; | |
| int publicMethod() { | |
| return 42; | |
| } | |
| int _privateMethod() { | |
| return 43; | |
| } | |
| static int publicStaticMethod() { | |
| return 44; | |
| } | |
| static int _privateStaticMethod() { | |
| return 45; | |
| } | |
| int publicField = 84; | |
| int _privateField = 85; | |
| static int publicStaticField = 86; | |
| static int _privateStaticField = 87; | |
| int get publicGetter => -1; | |
| int get _privateGetter => -2; | |
| static int get publicStaticGetter => -3; | |
| static int get _privateStaticGetter => -4; | |
| void set publicSetter(int x) {} | |
| void set _privateSetter(int x) {} | |
| static void set publicStaticSetter(int x) {} | |
| static void set _privateStaticSetter(int x) {} | |
| } | |
| extension PublicExtension on Foo { | |
| int publicPublicExtensionMethod() { | |
| return 20; | |
| } | |
| int _publicPrivateExtensionMethod() { | |
| return 21; | |
| } | |
| static int publicPublicStaticExtensionMethod() { | |
| return 22; | |
| } | |
| static int _publicPrivateStaticExtensionMethod() { | |
| return 23; | |
| } | |
| static int publicPublicStaticExtensionField = 24; | |
| static int _publicPrivateStaticExtensionField = 25; | |
| int get publicPublicExtensionGetter { | |
| return 26; | |
| } | |
| int get _publicPrivateExtensionGetter { | |
| return 27; | |
| } | |
| static int get publicPublicStaticExtensionGetter { | |
| return 28; | |
| } | |
| static int get _publicPrivateStaticExtensionGetter { | |
| return 29; | |
| } | |
| void set publicPublicExtensionSetter(int x) {} | |
| void set _publicPrivateExtensionSetter(int x) {} | |
| static void set publicPublicStaticExtensionSetter(int x) {} | |
| static void set _publicPrivateStaticExtensionSetter(int x) {} | |
| } | |
| extension _PrivateExtension on Foo { | |
| int privatePublicExtensionMethod() { | |
| return 30; | |
| } | |
| int _privatePrivateExtensionMethod() { | |
| return 31; | |
| } | |
| static int privatePublicStaticExtensionMethod() { | |
| return 32; | |
| } | |
| static int _privatePrivateStaticExtensionMethod() { | |
| return 33; | |
| } | |
| static int privatePublicStaticExtensionField = 34; | |
| static int _privatePrivateStaticExtensionField = 35; | |
| int get privatePublicExtensionGetter { | |
| return 36; | |
| } | |
| int get _privatePrivateExtensionGetter { | |
| return 37; | |
| } | |
| static int get privatePublicStaticExtensionGetter { | |
| return 38; | |
| } | |
| static int get _privatePrivateStaticExtensionGetter { | |
| return 39; | |
| } | |
| void set privatePublicExtensionSetter(int x) {} | |
| void set _privatePrivateExtensionSetter(int x) {} | |
| static void set privatePublicStaticExtensionSetter(int x) {} | |
| static void set _privatePrivateStaticExtensionSetter(int x) {} | |
| } | |
| int publicTopLevelMethod() { | |
| return 50; | |
| } | |
| int _privateTopLevelMethod() { | |
| return 51; | |
| } | |
| int publicTopLevelField = 52; | |
| int _privateTopLevelField = 53; | |
| int get publicTopLevelGetter { | |
| return 54; | |
| } | |
| int get _privateTopLevelGetter { | |
| return 55; | |
| } | |
| void set publicTopLevelSetter(int x) {} | |
| void set _privateTopLevelSetter(int x) {} | |
| main() { | |
| // Class constructors. | |
| Foo foo = new Foo(); | |
| assert(foo.what == 0); | |
| foo = new Foo.publicNamed(); | |
| assert(foo.what == 1); | |
| foo = new Foo._privateNamed(); | |
| assert(foo.what == 2); | |
| // Class methods. | |
| assert(foo.publicMethod() == 42); | |
| assert(foo._privateMethod() == 43); | |
| assert(Foo.publicStaticMethod() == 44); | |
| assert(Foo._privateStaticMethod() == 45); | |
| // Class fields. | |
| assert(foo.publicField == 84); | |
| foo.publicField = -84; | |
| assert(foo.publicField == -84); | |
| assert(foo._privateField == 85); | |
| foo._privateField = -85; | |
| assert(foo._privateField == -85); | |
| assert(Foo.publicStaticField == 86); | |
| Foo.publicStaticField = -86; | |
| assert(Foo.publicStaticField == -86); | |
| assert(Foo._privateStaticField == 87); | |
| Foo._privateStaticField = -87; | |
| assert(Foo._privateStaticField == -87); | |
| // Class getters. | |
| assert(foo.publicGetter == -1); | |
| assert(foo._privateGetter == -2); | |
| assert(Foo.publicStaticGetter == -3); | |
| assert(Foo._privateStaticGetter == -4); | |
| // Class setters. | |
| foo.publicSetter = 42; | |
| foo._privateSetter = 42; | |
| Foo.publicStaticSetter = 42; | |
| Foo._privateStaticSetter = 42; | |
| // Extension methods. | |
| assert(foo.publicPublicExtensionMethod() == 20); | |
| assert(foo._publicPrivateExtensionMethod() == 21); | |
| assert(PublicExtension.publicPublicStaticExtensionMethod() == 22); | |
| assert(PublicExtension._publicPrivateStaticExtensionMethod() == 23); | |
| assert(foo.privatePublicExtensionMethod() == 30); | |
| assert(foo._privatePrivateExtensionMethod() == 31); | |
| assert(_PrivateExtension.privatePublicStaticExtensionMethod() == 32); | |
| assert(_PrivateExtension._privatePrivateStaticExtensionMethod() == 33); | |
| // Extension fields. | |
| assert(PublicExtension.publicPublicStaticExtensionField == 24); | |
| PublicExtension.publicPublicStaticExtensionField = -24; | |
| assert(PublicExtension.publicPublicStaticExtensionField == -24); | |
| assert(PublicExtension._publicPrivateStaticExtensionField == 25); | |
| PublicExtension._publicPrivateStaticExtensionField = -25; | |
| assert(PublicExtension._publicPrivateStaticExtensionField == -25); | |
| assert(_PrivateExtension.privatePublicStaticExtensionField == 34); | |
| _PrivateExtension.privatePublicStaticExtensionField = -34; | |
| assert(_PrivateExtension.privatePublicStaticExtensionField == -34); | |
| assert(_PrivateExtension._privatePrivateStaticExtensionField == 35); | |
| _PrivateExtension._privatePrivateStaticExtensionField = -35; | |
| assert(_PrivateExtension._privatePrivateStaticExtensionField == -35); | |
| // Extension getters. | |
| assert(foo.publicPublicExtensionGetter == 26); | |
| assert(foo._publicPrivateExtensionGetter == 27); | |
| assert(PublicExtension.publicPublicStaticExtensionGetter == 28); | |
| assert(PublicExtension._publicPrivateStaticExtensionGetter == 29); | |
| assert(foo.privatePublicExtensionGetter == 36); | |
| assert(foo._privatePrivateExtensionGetter == 37); | |
| assert(_PrivateExtension.privatePublicStaticExtensionGetter == 38); | |
| assert(_PrivateExtension._privatePrivateStaticExtensionGetter == 39); | |
| // Extension setters. | |
| foo.publicPublicExtensionSetter = 42; | |
| foo._publicPrivateExtensionSetter = 42; | |
| PublicExtension.publicPublicStaticExtensionSetter = 42; | |
| PublicExtension._publicPrivateStaticExtensionSetter = 42; | |
| foo.privatePublicExtensionSetter = 42; | |
| foo._privatePrivateExtensionSetter = 42; | |
| _PrivateExtension.privatePublicStaticExtensionSetter = 42; | |
| _PrivateExtension._privatePrivateStaticExtensionSetter = 42; | |
| // Top-level methods. | |
| assert(publicTopLevelMethod() == 50); | |
| assert(_privateTopLevelMethod() == 51); | |
| // Top-level fields. | |
| assert(publicTopLevelField == 52); | |
| publicTopLevelField = -52; | |
| assert(publicTopLevelField == -52); | |
| assert(_privateTopLevelField == 53); | |
| _privateTopLevelField = -53; | |
| assert(_privateTopLevelField == -53); | |
| // Top-level getters. | |
| assert(publicTopLevelGetter == 54); | |
| assert(_privateTopLevelGetter == 55); | |
| // Top-level setters. | |
| publicTopLevelSetter = 42; | |
| _privateTopLevelSetter = 42; | |
| } | |
| expression: | | |
| () { | |
| // Class constructors. | |
| Foo foo = new Foo(); | |
| assert(foo.what == 0); | |
| foo = new Foo.publicNamed(); | |
| assert(foo.what == 1); | |
| foo = new Foo._privateNamed(); | |
| assert(foo.what == 2); | |
| // Class methods. | |
| assert(foo.publicMethod() == 42); | |
| assert(foo._privateMethod() == 43); | |
| assert(Foo.publicStaticMethod() == 44); | |
| assert(Foo._privateStaticMethod() == 45); | |
| // Class fields. | |
| assert(foo.publicField == 84); | |
| foo.publicField = -84; | |
| assert(foo.publicField == -84); | |
| assert(foo._privateField == 85); | |
| foo._privateField = -85; | |
| assert(foo._privateField == -85); | |
| assert(Foo.publicStaticField == 86); | |
| Foo.publicStaticField = -86; | |
| assert(Foo.publicStaticField == -86); | |
| assert(Foo._privateStaticField == 87); | |
| Foo._privateStaticField = -87; | |
| assert(Foo._privateStaticField == -87); | |
| // Class getters. | |
| assert(foo.publicGetter == -1); | |
| assert(foo._privateGetter == -2); | |
| assert(Foo.publicStaticGetter == -3); | |
| assert(Foo._privateStaticGetter == -4); | |
| // Class setters. | |
| foo.publicSetter = 42; | |
| foo._privateSetter = 42; | |
| Foo.publicStaticSetter = 42; | |
| Foo._privateStaticSetter = 42; | |
| // Extension methods. | |
| assert(foo.publicPublicExtensionMethod() == 20); | |
| assert(foo._publicPrivateExtensionMethod() == 21); | |
| assert(PublicExtension.publicPublicStaticExtensionMethod() == 22); | |
| assert(PublicExtension._publicPrivateStaticExtensionMethod() == 23); | |
| assert(foo.privatePublicExtensionMethod() == 30); | |
| assert(foo._privatePrivateExtensionMethod() == 31); | |
| assert(_PrivateExtension.privatePublicStaticExtensionMethod() == 32); | |
| assert(_PrivateExtension._privatePrivateStaticExtensionMethod() == 33); | |
| // Extension fields. | |
| assert(PublicExtension.publicPublicStaticExtensionField == 24); | |
| PublicExtension.publicPublicStaticExtensionField = -24; | |
| assert(PublicExtension.publicPublicStaticExtensionField == -24); | |
| assert(PublicExtension._publicPrivateStaticExtensionField == 25); | |
| PublicExtension._publicPrivateStaticExtensionField = -25; | |
| assert(PublicExtension._publicPrivateStaticExtensionField == -25); | |
| assert(_PrivateExtension.privatePublicStaticExtensionField == 34); | |
| _PrivateExtension.privatePublicStaticExtensionField = -34; | |
| assert(_PrivateExtension.privatePublicStaticExtensionField == -34); | |
| assert(_PrivateExtension._privatePrivateStaticExtensionField == 35); | |
| _PrivateExtension._privatePrivateStaticExtensionField = -35; | |
| assert(_PrivateExtension._privatePrivateStaticExtensionField == -35); | |
| // Extension getters. | |
| assert(foo.publicPublicExtensionGetter == 26); | |
| assert(foo._publicPrivateExtensionGetter == 27); | |
| assert(PublicExtension.publicPublicStaticExtensionGetter == 28); | |
| assert(PublicExtension._publicPrivateStaticExtensionGetter == 29); | |
| assert(foo.privatePublicExtensionGetter == 36); | |
| assert(foo._privatePrivateExtensionGetter == 37); | |
| assert(_PrivateExtension.privatePublicStaticExtensionGetter == 38); | |
| assert(_PrivateExtension._privatePrivateStaticExtensionGetter == 39); | |
| // Extension setters. | |
| foo.publicPublicExtensionSetter = 42; | |
| foo._publicPrivateExtensionSetter = 42; | |
| PublicExtension.publicPublicStaticExtensionSetter = 42; | |
| PublicExtension._publicPrivateStaticExtensionSetter = 42; | |
| foo.privatePublicExtensionSetter = 42; | |
| foo._privatePrivateExtensionSetter = 42; | |
| _PrivateExtension.privatePublicStaticExtensionSetter = 42; | |
| _PrivateExtension._privatePrivateStaticExtensionSetter = 42; | |
| // Top-level methods. | |
| assert(publicTopLevelMethod() == 50); | |
| assert(_privateTopLevelMethod() == 51); | |
| // Top-level fields. | |
| assert(publicTopLevelField == 52); | |
| publicTopLevelField = -52; | |
| assert(publicTopLevelField == -52); | |
| assert(_privateTopLevelField == 53); | |
| _privateTopLevelField = -53; | |
| assert(_privateTopLevelField == -53); | |
| // Top-level getters. | |
| assert(publicTopLevelGetter == 54); | |
| assert(_privateTopLevelGetter == 55); | |
| // Top-level setters. | |
| publicTopLevelSetter = 42; | |
| _privateTopLevelSetter = 42; | |
| } |