| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| class Class<T extends core::Object? = dynamic> 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; |
| final field self::Class::T% field; |
| generic-covariant-impl field self::Class::T? _#Class#lateGenericField1 = null; |
| field core::bool _#Class#lateGenericField1#isSet = false; |
| generic-covariant-impl field self::Class::T? _#Class#lateGenericField2 = null; |
| field core::bool _#Class#lateGenericField2#isSet = false; |
| constructor •(self::Class::T% field) → self::Class<self::Class::T%> |
| : self::Class::field = field, super core::Object::•() |
| ; |
| static get lateStaticField1() → core::int { |
| if(!self::Class::_#lateStaticField1#isSet) { |
| self::Class::_#lateStaticField1 = 87; |
| self::Class::_#lateStaticField1#isSet = true; |
| } |
| return let final core::int? #t1 = self::Class::_#lateStaticField1 in #t1{core::int}; |
| } |
| static set lateStaticField1(core::int #t2) → void { |
| self::Class::_#lateStaticField1#isSet = true; |
| self::Class::_#lateStaticField1 = #t2; |
| } |
| static get lateStaticField2() → core::int { |
| if(!self::Class::_#lateStaticField2#isSet) { |
| self::Class::_#lateStaticField2 = 42; |
| self::Class::_#lateStaticField2#isSet = true; |
| } |
| return let final core::int? #t3 = self::Class::_#lateStaticField2 in #t3{core::int}; |
| } |
| static set lateStaticField2(core::int #t4) → void { |
| self::Class::_#lateStaticField2#isSet = true; |
| self::Class::_#lateStaticField2 = #t4; |
| } |
| static method staticMethod() → dynamic { |
| self::expect(42, self::Class::lateStaticField2); |
| self::Class::lateStaticField2 = 43; |
| self::expect(43, self::Class::lateStaticField2); |
| } |
| get lateInstanceField() → core::int { |
| if(!this.{self::Class::_#Class#lateInstanceField#isSet}{core::bool}) { |
| this.{self::Class::_#Class#lateInstanceField} = 16; |
| this.{self::Class::_#Class#lateInstanceField#isSet} = true; |
| } |
| return let final core::int? #t5 = this.{self::Class::_#Class#lateInstanceField}{core::int?} in #t5{core::int}; |
| } |
| set lateInstanceField(core::int #t6) → void { |
| this.{self::Class::_#Class#lateInstanceField#isSet} = true; |
| this.{self::Class::_#Class#lateInstanceField} = #t6; |
| } |
| get lateGenericField1() → self::Class::T% { |
| if(!this.{self::Class::_#Class#lateGenericField1#isSet}{core::bool}) { |
| this.{self::Class::_#Class#lateGenericField1} = this.{self::Class::field}{self::Class::T%}; |
| this.{self::Class::_#Class#lateGenericField1#isSet} = true; |
| } |
| return let final self::Class::T? #t7 = this.{self::Class::_#Class#lateGenericField1}{self::Class::T?} in #t7{self::Class::T%}; |
| } |
| set lateGenericField1(generic-covariant-impl self::Class::T% #t8) → void { |
| this.{self::Class::_#Class#lateGenericField1#isSet} = true; |
| this.{self::Class::_#Class#lateGenericField1} = #t8; |
| } |
| get lateGenericField2() → self::Class::T% { |
| if(!this.{self::Class::_#Class#lateGenericField2#isSet}{core::bool}) { |
| this.{self::Class::_#Class#lateGenericField2} = this.{self::Class::field}{self::Class::T%}; |
| this.{self::Class::_#Class#lateGenericField2#isSet} = true; |
| } |
| return let final self::Class::T? #t9 = this.{self::Class::_#Class#lateGenericField2}{self::Class::T?} in #t9{self::Class::T%}; |
| } |
| set lateGenericField2(generic-covariant-impl self::Class::T% #t10) → void { |
| this.{self::Class::_#Class#lateGenericField2#isSet} = true; |
| this.{self::Class::_#Class#lateGenericField2} = #t10; |
| } |
| method instanceMethod(generic-covariant-impl self::Class::T% value) → dynamic { |
| self::expect(16, this.{self::Class::lateInstanceField}{core::int}); |
| this.{self::Class::lateInstanceField} = 17; |
| self::expect(17, this.{self::Class::lateInstanceField}{core::int}); |
| self::expect(this.{self::Class::field}{self::Class::T%}, this.{self::Class::lateGenericField1}{self::Class::T%}); |
| this.{self::Class::lateGenericField1} = value; |
| self::expect(value, this.{self::Class::lateGenericField1}{self::Class::T%}); |
| this.{self::Class::lateGenericField2} = value; |
| self::expect(value, this.{self::Class::lateGenericField2}{self::Class::T%}); |
| } |
| } |
| extension Extension<T extends core::Object? = dynamic> on self::Class<T%> { |
| 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? _#lateTopLevelField1 = null; |
| static field core::bool _#lateTopLevelField1#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 lateTopLevelField1() → core::int { |
| if(!self::_#lateTopLevelField1#isSet) { |
| self::_#lateTopLevelField1 = 123; |
| self::_#lateTopLevelField1#isSet = true; |
| } |
| return let final core::int? #t11 = self::_#lateTopLevelField1 in #t11{core::int}; |
| } |
| static set lateTopLevelField1(core::int #t12) → void { |
| self::_#lateTopLevelField1#isSet = true; |
| self::_#lateTopLevelField1 = #t12; |
| } |
| static get Extension|lateExtensionField1() → core::int { |
| if(!self::_#Extension|lateExtensionField1#isSet) { |
| self::_#Extension|lateExtensionField1 = 87; |
| self::_#Extension|lateExtensionField1#isSet = true; |
| } |
| return let final core::int? #t13 = self::_#Extension|lateExtensionField1 in #t13{core::int}; |
| } |
| static set Extension|lateExtensionField1(core::int #t14) → void { |
| self::_#Extension|lateExtensionField1#isSet = true; |
| self::_#Extension|lateExtensionField1 = #t14; |
| } |
| static get Extension|lateExtensionField2() → core::int { |
| if(!self::_#Extension|lateExtensionField2#isSet) { |
| self::_#Extension|lateExtensionField2 = 42; |
| self::_#Extension|lateExtensionField2#isSet = true; |
| } |
| return let final core::int? #t15 = self::_#Extension|lateExtensionField2 in #t15{core::int}; |
| } |
| static set Extension|lateExtensionField2(core::int #t16) → void { |
| self::_#Extension|lateExtensionField2#isSet = true; |
| self::_#Extension|lateExtensionField2 = #t16; |
| } |
| static method Extension|staticMethod() → dynamic { |
| self::expect(42, self::Extension|lateExtensionField2); |
| self::Extension|lateExtensionField2 = 43; |
| self::expect(43, self::Extension|lateExtensionField2); |
| } |
| static method main() → dynamic { |
| self::expect(123, self::lateTopLevelField1); |
| self::lateTopLevelField1 = 124; |
| self::expect(124, self::lateTopLevelField1); |
| self::expect(87, self::Class::lateStaticField1); |
| self::Class::lateStaticField1 = 88; |
| self::expect(88, self::Class::lateStaticField1); |
| self::Class::staticMethod(); |
| new self::Class::•<core::int>(0).{self::Class::instanceMethod}(42){(core::int) → dynamic}; |
| self::expect(87, self::Extension|lateExtensionField1); |
| self::Extension|lateExtensionField1 = 88; |
| self::expect(88, self::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}"; |
| } |