6bec589f00
Change-Id: Iff8a3ea624b7130cb09359fbc9787a98ba07c4e5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/364700 Reviewed-by: Alexander Markov <alexmarkov@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com> Reviewed-by: Paul Berry <paulberry@google.com>
369 lines
11 KiB
YAML
369 lines
11 KiB
YAML
# 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;
|
|
}
|