mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 21:01:20 +00:00
c308c9327d
TEST=existing Change-Id: I16fbeb0bbe431e3f85ed11c21e0506e6aa4abf58 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/302206 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Srujan Gaddam <srujzs@google.com>
138 lines
7.9 KiB
Plaintext
138 lines
7.9 KiB
Plaintext
library;
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
import "dart:_internal" as _in;
|
|
|
|
class Class extends core::Object {
|
|
static field core::int? _#lateStaticField1 = null;
|
|
static field core::bool _#lateStaticField1#isSet = false;
|
|
static field core::int? _#lateStaticField2 = null;
|
|
static field core::bool _#lateStaticField2#isSet = false;
|
|
field core::int? _#Class#lateInstanceField = null;
|
|
field core::bool _#Class#lateInstanceField#isSet = false;
|
|
synthetic constructor •() → self::Class
|
|
: super core::Object::•()
|
|
;
|
|
static get lateStaticField1() → core::int
|
|
return self::Class::_#lateStaticField1#isSet ?{core::int} let final core::int? #t1 = self::Class::_#lateStaticField1 in #t1{core::int} : throw new _in::LateError::fieldNI("lateStaticField1");
|
|
static set lateStaticField1(core::int lateStaticField1#param) → void
|
|
if(self::Class::_#lateStaticField1#isSet)
|
|
throw new _in::LateError::fieldAI("lateStaticField1");
|
|
else {
|
|
self::Class::_#lateStaticField1#isSet = true;
|
|
self::Class::_#lateStaticField1 = lateStaticField1#param;
|
|
}
|
|
static get lateStaticField2() → core::int
|
|
return self::Class::_#lateStaticField2#isSet ?{core::int} let final core::int? #t2 = self::Class::_#lateStaticField2 in #t2{core::int} : throw new _in::LateError::fieldNI("lateStaticField2");
|
|
static set lateStaticField2(core::int lateStaticField2#param) → void
|
|
if(self::Class::_#lateStaticField2#isSet)
|
|
throw new _in::LateError::fieldAI("lateStaticField2");
|
|
else {
|
|
self::Class::_#lateStaticField2#isSet = true;
|
|
self::Class::_#lateStaticField2 = lateStaticField2#param;
|
|
}
|
|
static method staticMethod() → dynamic {
|
|
self::throws(() → core::int => self::Class::lateStaticField2, "Read value from uninitialized Class.lateStaticField2");
|
|
self::Class::lateStaticField2 = 42;
|
|
self::expect(42, self::Class::lateStaticField2);
|
|
self::throws(() → core::int => self::Class::lateStaticField2 = 43, "Write value to initialized Class.lateStaticField2");
|
|
}
|
|
get lateInstanceField() → core::int
|
|
return this.{self::Class::_#Class#lateInstanceField#isSet}{core::bool} ?{core::int} let final core::int? #t3 = this.{self::Class::_#Class#lateInstanceField}{core::int?} in #t3{core::int} : throw new _in::LateError::fieldNI("lateInstanceField");
|
|
set lateInstanceField(core::int lateInstanceField#param) → void
|
|
if(this.{self::Class::_#Class#lateInstanceField#isSet}{core::bool})
|
|
throw new _in::LateError::fieldAI("lateInstanceField");
|
|
else {
|
|
this.{self::Class::_#Class#lateInstanceField#isSet} = true;
|
|
this.{self::Class::_#Class#lateInstanceField} = lateInstanceField#param;
|
|
}
|
|
method instanceMethod() → dynamic {
|
|
self::throws(() → core::int => this.{self::Class::lateInstanceField}{core::int}, "Read value from uninitialized Class.lateInstanceField");
|
|
this.{self::Class::lateInstanceField} = 16;
|
|
self::expect(16, this.{self::Class::lateInstanceField}{core::int});
|
|
self::throws(() → core::int => this.{self::Class::lateInstanceField} = 17, "Write value to initialized Class.lateInstanceField");
|
|
}
|
|
}
|
|
extension Extension on self::Class {
|
|
static field lateExtensionField1 = self::_#Extension|lateExtensionField1;
|
|
static field lateExtensionField1 = self::_#Extension|lateExtensionField1#isSet;
|
|
static get lateExtensionField1 = get self::Extension|lateExtensionField1;
|
|
static set lateExtensionField1 = set self::Extension|lateExtensionField1;
|
|
static field lateExtensionField2 = self::_#Extension|lateExtensionField2;
|
|
static field lateExtensionField2 = self::_#Extension|lateExtensionField2#isSet;
|
|
static get lateExtensionField2 = get self::Extension|lateExtensionField2;
|
|
static set lateExtensionField2 = set self::Extension|lateExtensionField2;
|
|
static method staticMethod = self::Extension|staticMethod;
|
|
}
|
|
static field core::int? _#lateTopLevelField = null;
|
|
static field core::bool _#lateTopLevelField#isSet = false;
|
|
static field core::int? _#Extension|lateExtensionField1 = null;
|
|
static field core::bool _#Extension|lateExtensionField1#isSet = false;
|
|
static field core::int? _#Extension|lateExtensionField2 = null;
|
|
static field core::bool _#Extension|lateExtensionField2#isSet = false;
|
|
static get lateTopLevelField() → core::int
|
|
return self::_#lateTopLevelField#isSet ?{core::int} let final core::int? #t4 = self::_#lateTopLevelField in #t4{core::int} : throw new _in::LateError::fieldNI("lateTopLevelField");
|
|
static set lateTopLevelField(core::int lateTopLevelField#param) → void
|
|
if(self::_#lateTopLevelField#isSet)
|
|
throw new _in::LateError::fieldAI("lateTopLevelField");
|
|
else {
|
|
self::_#lateTopLevelField#isSet = true;
|
|
self::_#lateTopLevelField = lateTopLevelField#param;
|
|
}
|
|
static extension-member get Extension|lateExtensionField1() → core::int
|
|
return self::_#Extension|lateExtensionField1#isSet ?{core::int} let final core::int? #t5 = self::_#Extension|lateExtensionField1 in #t5{core::int} : throw new _in::LateError::fieldNI("lateExtensionField1");
|
|
static extension-member set Extension|lateExtensionField1(core::int lateExtensionField1#param) → void
|
|
if(self::_#Extension|lateExtensionField1#isSet)
|
|
throw new _in::LateError::fieldAI("lateExtensionField1");
|
|
else {
|
|
self::_#Extension|lateExtensionField1#isSet = true;
|
|
self::_#Extension|lateExtensionField1 = lateExtensionField1#param;
|
|
}
|
|
static extension-member get Extension|lateExtensionField2() → core::int
|
|
return self::_#Extension|lateExtensionField2#isSet ?{core::int} let final core::int? #t6 = self::_#Extension|lateExtensionField2 in #t6{core::int} : throw new _in::LateError::fieldNI("lateExtensionField2");
|
|
static extension-member set Extension|lateExtensionField2(core::int lateExtensionField2#param) → void
|
|
if(self::_#Extension|lateExtensionField2#isSet)
|
|
throw new _in::LateError::fieldAI("lateExtensionField2");
|
|
else {
|
|
self::_#Extension|lateExtensionField2#isSet = true;
|
|
self::_#Extension|lateExtensionField2 = lateExtensionField2#param;
|
|
}
|
|
static extension-member method Extension|staticMethod() → dynamic {
|
|
self::throws(() → core::int => self::Extension|lateExtensionField2, "Read value from uninitialized Class.lateExtensionField2");
|
|
self::Extension|lateExtensionField2 = 42;
|
|
self::expect(42, self::Extension|lateExtensionField2);
|
|
self::throws(() → core::int => self::Extension|lateExtensionField2 = 43, "Write value to initialized Class.lateExtensionField2");
|
|
}
|
|
static method main() → dynamic {
|
|
self::throws(() → core::int => self::lateTopLevelField, "Read value from uninitialized lateTopLevelField");
|
|
self::lateTopLevelField = 123;
|
|
self::expect(123, self::lateTopLevelField);
|
|
self::throws(() → core::int => self::lateTopLevelField = 124, "Write value to initialized lateTopLevelField");
|
|
self::throws(() → core::int => self::Class::lateStaticField1, "Read value from uninitialized Class.lateStaticField1");
|
|
self::Class::lateStaticField1 = 87;
|
|
self::expect(87, self::Class::lateStaticField1);
|
|
self::throws(() → core::int => self::Class::lateStaticField1 = 88, "Write value to initialized Class.lateStaticField1");
|
|
self::Class::staticMethod();
|
|
new self::Class::•().{self::Class::instanceMethod}(){() → dynamic};
|
|
self::throws(() → core::int => self::Extension|lateExtensionField1, "Read value from uninitialized Extension.lateExtensionField1");
|
|
self::Extension|lateExtensionField1 = 87;
|
|
self::expect(87, self::Extension|lateExtensionField1);
|
|
self::throws(() → core::int => self::Extension|lateExtensionField1 = 88, "Write value to initialized Extension.lateExtensionField1");
|
|
self::Extension|staticMethod();
|
|
}
|
|
static method expect(dynamic expected, dynamic actual) → dynamic {
|
|
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
|
|
throw "Expected ${expected}, actual ${actual}";
|
|
}
|
|
static method throws(() → dynamic f, core::String message) → dynamic {
|
|
dynamic value;
|
|
try {
|
|
value = f(){() → dynamic};
|
|
}
|
|
on core::Error catch(final core::Error e) {
|
|
core::print(e);
|
|
return;
|
|
}
|
|
throw "${message}: ${value}";
|
|
}
|