| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| class Class extends core::Object { |
| static field core::int? _#lateStaticField1 = null; |
| static field dynamic _#lateStaticField1#isSet = false; |
| static field core::int? _#lateStaticField2 = null; |
| static field dynamic _#lateStaticField2#isSet = false; |
| field core::int? _#lateInstanceField = null; |
| field dynamic _#lateInstanceField#isSet = false; |
| synthetic constructor •() → self::Class* |
| : super core::Object::•() |
| ; |
| static get lateStaticField1() → core::int? |
| return self::Class::_#lateStaticField1#isSet ?{core::int?} self::Class::_#lateStaticField1 : throw "Field 'lateStaticField1' has not been initialized."; |
| static set lateStaticField1(core::int? #t1) → void |
| if(self::Class::_#lateStaticField1#isSet) |
| throw "Field 'lateStaticField1' has already been initialized."; |
| else { |
| self::Class::_#lateStaticField1#isSet = true; |
| self::Class::_#lateStaticField1 = #t1; |
| } |
| static get lateStaticField2() → core::int? |
| return self::Class::_#lateStaticField2#isSet ?{core::int?} self::Class::_#lateStaticField2 : throw "Field 'lateStaticField2' has not been initialized."; |
| static set lateStaticField2(core::int? #t2) → void |
| if(self::Class::_#lateStaticField2#isSet) |
| throw "Field 'lateStaticField2' has already been initialized."; |
| else { |
| self::Class::_#lateStaticField2#isSet = true; |
| self::Class::_#lateStaticField2 = #t2; |
| } |
| 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::_#lateInstanceField#isSet} ?{core::int?} this.{self::Class::_#lateInstanceField} : throw "Field 'lateInstanceField' has not been initialized."; |
| set lateInstanceField(core::int? #t3) → void |
| if(this.{self::Class::_#lateInstanceField#isSet}) |
| throw "Field 'lateInstanceField' has already been initialized."; |
| else { |
| this.{self::Class::_#lateInstanceField#isSet} = true; |
| this.{self::Class::_#lateInstanceField} = #t3; |
| } |
| method instanceMethod() → dynamic { |
| self::throws(() → core::int? => this.{self::Class::lateInstanceField}, "Read value from uninitialized Class.lateInstanceField"); |
| this.{self::Class::lateInstanceField} = 16; |
| self::expect(16, this.{self::Class::lateInstanceField}); |
| self::throws(() → core::int => this.{self::Class::lateInstanceField} = 17, "Write value to initialized Class.lateInstanceField"); |
| } |
| } |
| static field core::int? _#lateTopLevelField = null; |
| static field dynamic _#lateTopLevelField#isSet = false; |
| static get lateTopLevelField() → core::int? |
| return self::_#lateTopLevelField#isSet ?{core::int?} self::_#lateTopLevelField : throw "Field 'lateTopLevelField' has not been initialized."; |
| static set lateTopLevelField(core::int? #t4) → void |
| if(self::_#lateTopLevelField#isSet) |
| throw "Field 'lateTopLevelField' has already been initialized."; |
| else { |
| self::_#lateTopLevelField#isSet = true; |
| self::_#lateTopLevelField = #t4; |
| } |
| 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}(); |
| } |
| static method expect(dynamic expected, dynamic actual) → dynamic { |
| if(!expected.{core::Object::==}(actual)) |
| throw "Expected ${expected}, actual ${actual}"; |
| } |
| static method throws(() → dynamic f, core::String message) → dynamic { |
| dynamic value; |
| try { |
| value = f.call(); |
| } |
| on dynamic catch(final dynamic e) { |
| core::print(e); |
| return; |
| } |
| throw "${message}: ${value}"; |
| } |