blob: b5758c3acf86e46fade7fdf9969d31fe8f2e3107 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
class Class extends core::Object {
static field core::int? _#lateStaticField1 = null;
static field core::int? _#lateStaticField2 = null;
field core::int? _#lateInstanceField = null;
synthetic constructor •() self::Class
: super core::Object::•()
;
static get lateStaticField1() core::int
return let final core::int? #t1 = self::Class::_#lateStaticField1 in #t1.==(null) ?{core::int} self::Class::_#lateStaticField1 = 87 : #t1{core::int};
static set lateStaticField1(core::int #t2) → void
self::Class::_#lateStaticField1 = #t2;
static get lateStaticField2() core::int
return let final core::int? #t3 = self::Class::_#lateStaticField2 in #t3.==(null) ?{core::int} self::Class::_#lateStaticField2 = 42 : #t3{core::int};
static set lateStaticField2(core::int #t4) → void
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
return let final core::int? #t5 = this.{self::Class::_#lateInstanceField} in #t5.==(null) ?{core::int} this.{self::Class::_#lateInstanceField} = 16 : #t5{core::int};
set lateInstanceField(core::int #t6) → void
this.{self::Class::_#lateInstanceField} = #t6;
method instanceMethod() dynamic {
self::expect(16, this.{self::Class::lateInstanceField});
this.{self::Class::lateInstanceField} = 17;
self::expect(17, this.{self::Class::lateInstanceField});
}
}
extension Extension on self::Class {
static field lateExtensionField1 = self::_#Extension|lateExtensionField1;
static get lateExtensionField1 = get self::Extension|lateExtensionField1;
static set lateExtensionField1 = set self::Extension|lateExtensionField1;
static field lateExtensionField2 = self::_#Extension|lateExtensionField2;
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::int? _#Extension|lateExtensionField1 = null;
static field core::int? _#Extension|lateExtensionField2 = null;
static get lateTopLevelField1() core::int
return let final core::int? #t7 = self::_#lateTopLevelField1 in #t7.==(null) ?{core::int} self::_#lateTopLevelField1 = 123 : #t7{core::int};
static set lateTopLevelField1(core::int #t8) → void
self::_#lateTopLevelField1 = #t8;
static get Extension|lateExtensionField1() core::int
return let final core::int? #t9 = self::_#Extension|lateExtensionField1 in #t9.==(null) ?{core::int} self::_#Extension|lateExtensionField1 = 87 : #t9{core::int};
static set Extension|lateExtensionField1(core::int #t10) → void
self::_#Extension|lateExtensionField1 = #t10;
static get Extension|lateExtensionField2() core::int
return let final core::int? #t11 = self::_#Extension|lateExtensionField2 in #t11.==(null) ?{core::int} self::_#Extension|lateExtensionField2 = 42 : #t11{core::int};
static set Extension|lateExtensionField2(core::int #t12) → void
self::_#Extension|lateExtensionField2 = #t12;
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::•().{self::Class::instanceMethod}();
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::==}(actual))
throw "Expected ${expected}, actual ${actual}";
}