blob: 7bd454bd7886a1e3e1ac8d6205b78f1c80495d69 [file] [log] [blame] [edit]
library;
import self as self;
import "dart:core" as core;
class Number extends core::Object {
final field core::int value;
constructor •(core::int value) self::Number
: self::Number::value = value, super core::Object::•()
;
get hashCode() core::int
return this.{self::Number::value}{core::int}.{core::num::hashCode}{core::int};
operator ==(core::Object other) core::bool
return other is self::Number && this.{self::Number::value}{core::int} =={core::num::==}{(core::Object) core::bool} other{self::Number}.{self::Number::value}{core::int};
method toString() core::String
return "Number(${this.{self::Number::value}{core::int}})";
}
class Class extends core::Object {
field self::Number field;
constructor •(self::Number field) self::Class
: self::Class::field = field, super core::Object::•()
;
}
class IntClass extends core::Object {
field core::int field;
constructor •(core::int field) self::IntClass
: self::IntClass::field = field, super core::Object::•()
;
}
extension NumberExtension on self::Number {
operator + = self::NumberExtension|+;
operator - = self::NumberExtension|-;
}
extension ClassExtension on self::Class {
get property = self::ClassExtension|get#property;
set property = self::ClassExtension|set#property;
method testImplicitProperties = self::ClassExtension|testImplicitProperties;
method tearoff testImplicitProperties = self::ClassExtension|get#testImplicitProperties;
}
extension IntClassExtension on self::IntClass {
get property = self::IntClassExtension|get#property;
set property = self::IntClassExtension|set#property;
method testImplicitProperties = self::IntClassExtension|testImplicitProperties;
method tearoff testImplicitProperties = self::IntClassExtension|get#testImplicitProperties;
}
static extension-member method NumberExtension|+(lowered final self::Number #this, core::Object other) → self::Number {
if(other is core::int) {
return new self::Number::•(#this.{self::Number::value}{core::int}.{core::num::+}(other{core::int}){(core::num) core::int});
}
else
if(other is self::Number) {
return new self::Number::•(#this.{self::Number::value}{core::int}.{core::num::+}(other{self::Number}.{self::Number::value}{core::int}){(core::num) core::int});
}
else {
throw new core::ArgumentError::•("${other}");
}
}
static extension-member method NumberExtension|-(lowered final self::Number #this, core::Object other) → self::Number {
if(other is core::int) {
return new self::Number::•(#this.{self::Number::value}{core::int}.{core::num::-}(other{core::int}){(core::num) core::int});
}
else
if(other is self::Number) {
return new self::Number::•(#this.{self::Number::value}{core::int}.{core::num::-}(other{self::Number}.{self::Number::value}{core::int}){(core::num) core::int});
}
else {
throw new core::ArgumentError::•("${other}");
}
}
static extension-member method ClassExtension|get#property(lowered final self::Class #this) → self::Number
return #this.{self::Class::field}{self::Number};
static extension-member method ClassExtension|set#property(lowered final self::Class #this, self::Number value) → void {
#this.{self::Class::field} = value;
}
static extension-member method ClassExtension|testImplicitProperties(lowered final self::Class #this) → dynamic {
self::Number n0 = new self::Number::•(0);
self::Number n1 = new self::Number::•(1);
self::Number n2 = new self::Number::•(2);
self::expect(n0, self::ClassExtension|get#property(#this));
self::expect(n1, let final self::Number #t1 = self::NumberExtension|+(self::ClassExtension|get#property(#this), n1) in let final void #t2 = self::ClassExtension|set#property(#this, #t1) in #t1);
self::expect(n2, let final self::Number #t3 = self::NumberExtension|+(self::ClassExtension|get#property(#this), n1) in let final void #t4 = self::ClassExtension|set#property(#this, #t3) in #t3);
self::expect(n0, let final self::Number #t5 = self::NumberExtension|-(self::ClassExtension|get#property(#this), n2) in let final void #t6 = self::ClassExtension|set#property(#this, #t5) in #t5);
self::expect(n1, let final self::Number #t7 = self::NumberExtension|+(self::ClassExtension|get#property(#this), n1) in let final void #t8 = self::ClassExtension|set#property(#this, #t7) in #t7);
self::expect(n0, let final self::Number #t9 = self::NumberExtension|-(self::ClassExtension|get#property(#this), n1) in let final void #t10 = self::ClassExtension|set#property(#this, #t9) in #t9);
self::expect(n1, let final self::Number #t11 = self::NumberExtension|+(self::ClassExtension|get#property(#this), 1) in let final void #t12 = self::ClassExtension|set#property(#this, #t11) in #t11);
self::expect(n0, let final self::Number #t13 = self::NumberExtension|-(self::ClassExtension|get#property(#this), 1) in let final void #t14 = self::ClassExtension|set#property(#this, #t13) in #t13);
self::expect(n0, let final self::Number #t15 = self::ClassExtension|get#property(#this) in let final void #t16 = self::ClassExtension|set#property(#this, self::NumberExtension|+(#t15, 1)) in #t15);
self::expect(n1, let final self::Number #t17 = self::ClassExtension|get#property(#this) in let final void #t18 = self::ClassExtension|set#property(#this, self::NumberExtension|-(#t17, 1)) in #t17);
self::expect(n0, self::ClassExtension|get#property(#this));
self::expect(n0, self::ClassExtension|get#property(#this));
self::ClassExtension|set#property(#this, self::NumberExtension|+(self::ClassExtension|get#property(#this), n1));
self::expect(n1, self::ClassExtension|get#property(#this));
self::ClassExtension|set#property(#this, self::NumberExtension|+(self::ClassExtension|get#property(#this), n1));
self::expect(n2, self::ClassExtension|get#property(#this));
self::ClassExtension|set#property(#this, self::NumberExtension|-(self::ClassExtension|get#property(#this), n2));
self::expect(n0, self::ClassExtension|get#property(#this));
self::ClassExtension|set#property(#this, self::NumberExtension|+(self::ClassExtension|get#property(#this), n1));
self::expect(n1, self::ClassExtension|get#property(#this));
self::ClassExtension|set#property(#this, self::NumberExtension|-(self::ClassExtension|get#property(#this), n1));
self::expect(n0, self::ClassExtension|get#property(#this));
let final self::Number #t19 = self::NumberExtension|+(self::ClassExtension|get#property(#this), 1) in let final void #t20 = self::ClassExtension|set#property(#this, #t19) in #t19;
self::expect(n1, self::ClassExtension|get#property(#this));
let final self::Number #t21 = self::NumberExtension|-(self::ClassExtension|get#property(#this), 1) in let final void #t22 = self::ClassExtension|set#property(#this, #t21) in #t21;
self::expect(n0, self::ClassExtension|get#property(#this));
self::ClassExtension|set#property(#this, self::NumberExtension|+(self::ClassExtension|get#property(#this), 1));
self::expect(n1, self::ClassExtension|get#property(#this));
self::ClassExtension|set#property(#this, self::NumberExtension|-(self::ClassExtension|get#property(#this), 1));
self::expect(n0, self::ClassExtension|get#property(#this));
}
static extension-member method ClassExtension|get#testImplicitProperties(lowered final self::Class #this) → () → dynamic
return () dynamic => self::ClassExtension|testImplicitProperties(#this);
static extension-member method IntClassExtension|get#property(lowered final self::IntClass #this) → core::int
return #this.{self::IntClass::field}{core::int};
static extension-member method IntClassExtension|set#property(lowered final self::IntClass #this, core::int value) → void {
#this.{self::IntClass::field} = value;
}
static extension-member method IntClassExtension|testImplicitProperties(lowered final self::IntClass #this) → dynamic {
core::int n0 = 0;
core::int n1 = 1;
core::int n2 = 2;
self::expect(n0, self::IntClassExtension|get#property(#this));
self::expect(n1, let final core::int #t23 = self::IntClassExtension|get#property(#this).{core::num::+}(n1){(core::num) → core::int} in let final void #t24 = self::IntClassExtension|set#property(#this, #t23) in #t23);
self::expect(n2, let final core::int #t25 = self::IntClassExtension|get#property(#this).{core::num::+}(n1){(core::num) → core::int} in let final void #t26 = self::IntClassExtension|set#property(#this, #t25) in #t25);
self::expect(n0, let final core::int #t27 = self::IntClassExtension|get#property(#this).{core::num::-}(n2){(core::num) → core::int} in let final void #t28 = self::IntClassExtension|set#property(#this, #t27) in #t27);
self::expect(n1, let final core::int #t29 = self::IntClassExtension|get#property(#this).{core::num::+}(n1){(core::num) → core::int} in let final void #t30 = self::IntClassExtension|set#property(#this, #t29) in #t29);
self::expect(n0, let final core::int #t31 = self::IntClassExtension|get#property(#this).{core::num::-}(n1){(core::num) → core::int} in let final void #t32 = self::IntClassExtension|set#property(#this, #t31) in #t31);
self::expect(n1, let final core::int #t33 = self::IntClassExtension|get#property(#this).{core::num::+}(1){(core::num) → core::int} in let final void #t34 = self::IntClassExtension|set#property(#this, #t33) in #t33);
self::expect(n0, let final core::int #t35 = self::IntClassExtension|get#property(#this).{core::num::-}(1){(core::num) → core::int} in let final void #t36 = self::IntClassExtension|set#property(#this, #t35) in #t35);
self::expect(n0, let final core::int #t37 = self::IntClassExtension|get#property(#this) in let final void #t38 = self::IntClassExtension|set#property(#this, #t37.{core::num::+}(1){(core::num) → core::int}) in #t37);
self::expect(n1, let final core::int #t39 = self::IntClassExtension|get#property(#this) in let final void #t40 = self::IntClassExtension|set#property(#this, #t39.{core::num::-}(1){(core::num) → core::int}) in #t39);
self::expect(n0, self::IntClassExtension|get#property(#this));
self::expect(n0, self::IntClassExtension|get#property(#this));
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::+}(n1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(#this));
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::+}(n1){(core::num) → core::int});
self::expect(n2, self::IntClassExtension|get#property(#this));
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(n2){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(#this));
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::+}(n1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(#this));
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(n1){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(#this));
let final core::int #t41 = self::IntClassExtension|get#property(#this).{core::num::+}(1){(core::num) → core::int} in let final void #t42 = self::IntClassExtension|set#property(#this, #t41) in #t41;
self::expect(n1, self::IntClassExtension|get#property(#this));
let final core::int #t43 = self::IntClassExtension|get#property(#this).{core::num::-}(1){(core::num) → core::int} in let final void #t44 = self::IntClassExtension|set#property(#this, #t43) in #t43;
self::expect(n0, self::IntClassExtension|get#property(#this));
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::+}(1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(#this));
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(1){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(#this));
}
static extension-member method IntClassExtension|get#testImplicitProperties(lowered final self::IntClass #this) → () → dynamic
return () dynamic => self::IntClassExtension|testImplicitProperties(#this);
static method main() dynamic {
self::testLocals();
self::testProperties();
self::testIntProperties();
self::testExplicitProperties();
self::testExplicitIntProperties();
self::testExplicitNullAwareProperties(null);
self::testExplicitNullAwareProperties(new self::Class::•(new self::Number::•(0)));
self::testExplicitNullAwareIntProperties(null);
self::testExplicitNullAwareIntProperties(new self::IntClass::•(0));
self::ClassExtension|testImplicitProperties(new self::Class::•(new self::Number::•(0)));
self::IntClassExtension|testImplicitProperties(new self::IntClass::•(0));
}
static method testLocals() dynamic {
self::Number n0 = new self::Number::•(0);
self::Number n1 = new self::Number::•(1);
self::Number n2 = new self::Number::•(2);
self::Number v = n0;
self::expect(n0, v);
self::expect(n1, v = self::NumberExtension|+(v, n1));
self::expect(n2, v = self::NumberExtension|+(v, n1));
self::expect(n0, v = self::NumberExtension|-(v, n2));
self::expect(n1, v = self::NumberExtension|+(v, n1));
self::expect(n0, v = self::NumberExtension|-(v, n1));
self::expect(n1, v = self::NumberExtension|+(v, 1));
self::expect(n0, v = self::NumberExtension|-(v, 1));
self::expect(n0, let final self::Number #t45 = v in let final void #t46 = v = self::NumberExtension|+(#t45, 1) in #t45);
self::expect(n1, let final self::Number #t47 = v in let final void #t48 = v = self::NumberExtension|-(#t47, 1) in #t47);
self::expect(n0, v);
self::expect(n0, v);
v = self::NumberExtension|+(v, n1);
self::expect(n1, v);
v = self::NumberExtension|+(v, n1);
self::expect(n2, v);
v = self::NumberExtension|-(v, n2);
self::expect(n0, v);
v = self::NumberExtension|+(v, n1);
self::expect(n1, v);
v = self::NumberExtension|-(v, n1);
self::expect(n0, v);
v = self::NumberExtension|+(v, 1);
self::expect(n1, v);
v = self::NumberExtension|-(v, 1);
self::expect(n0, v);
v = self::NumberExtension|+(v, 1);
self::expect(n1, v);
v = self::NumberExtension|-(v, 1);
self::expect(n0, v);
}
static method testProperties() dynamic {
self::Number n0 = new self::Number::•(0);
self::Number n1 = new self::Number::•(1);
self::Number n2 = new self::Number::•(2);
self::Class v = new self::Class::•(n0);
self::expect(n0, v.{self::Class::field}{self::Number});
self::expect(n1, let final self::Class #t49 = v in #t49.{self::Class::field} = self::NumberExtension|+(#t49.{self::Class::field}{self::Number}, n1));
self::expect(n2, let final self::Class #t50 = v in #t50.{self::Class::field} = self::NumberExtension|+(#t50.{self::Class::field}{self::Number}, n1));
self::expect(n0, let final self::Class #t51 = v in #t51.{self::Class::field} = self::NumberExtension|-(#t51.{self::Class::field}{self::Number}, n2));
self::expect(n1, let final self::Class #t52 = v in #t52.{self::Class::field} = self::NumberExtension|+(#t52.{self::Class::field}{self::Number}, n1));
self::expect(n0, let final self::Class #t53 = v in #t53.{self::Class::field} = self::NumberExtension|-(#t53.{self::Class::field}{self::Number}, n1));
self::expect(n1, let final self::Class #t54 = v in #t54.{self::Class::field} = self::NumberExtension|+(#t54.{self::Class::field}{self::Number}, 1));
self::expect(n0, let final self::Class #t55 = v in #t55.{self::Class::field} = self::NumberExtension|-(#t55.{self::Class::field}{self::Number}, 1));
self::expect(n0, let final self::Class #t56 = v in let final self::Number #t57 = #t56.{self::Class::field}{self::Number} in let final void #t58 = #t56.{self::Class::field} = self::NumberExtension|+(#t57, 1) in #t57);
self::expect(n1, let final self::Class #t59 = v in let final self::Number #t60 = #t59.{self::Class::field}{self::Number} in let final void #t61 = #t59.{self::Class::field} = self::NumberExtension|-(#t60, 1) in #t60);
self::expect(n0, v.{self::Class::field}{self::Number});
self::expect(n0, v.{self::Class::field}{self::Number});
let final self::Class #t62 = v in #t62.{self::Class::field} = self::NumberExtension|+(#t62.{self::Class::field}{self::Number}, n1);
self::expect(n1, v.{self::Class::field}{self::Number});
let final self::Class #t63 = v in #t63.{self::Class::field} = self::NumberExtension|+(#t63.{self::Class::field}{self::Number}, n1);
self::expect(n2, v.{self::Class::field}{self::Number});
let final self::Class #t64 = v in #t64.{self::Class::field} = self::NumberExtension|-(#t64.{self::Class::field}{self::Number}, n2);
self::expect(n0, v.{self::Class::field}{self::Number});
let final self::Class #t65 = v in #t65.{self::Class::field} = self::NumberExtension|+(#t65.{self::Class::field}{self::Number}, n1);
self::expect(n1, v.{self::Class::field}{self::Number});
let final self::Class #t66 = v in #t66.{self::Class::field} = self::NumberExtension|-(#t66.{self::Class::field}{self::Number}, n1);
self::expect(n0, v.{self::Class::field}{self::Number});
let final self::Class #t67 = v in #t67.{self::Class::field} = self::NumberExtension|+(#t67.{self::Class::field}{self::Number}, 1);
self::expect(n1, v.{self::Class::field}{self::Number});
let final self::Class #t68 = v in #t68.{self::Class::field} = self::NumberExtension|-(#t68.{self::Class::field}{self::Number}, 1);
self::expect(n0, v.{self::Class::field}{self::Number});
let final self::Class #t69 = v in #t69.{self::Class::field} = self::NumberExtension|+(#t69.{self::Class::field}{self::Number}, 1);
self::expect(n1, v.{self::Class::field}{self::Number});
let final self::Class #t70 = v in #t70.{self::Class::field} = self::NumberExtension|-(#t70.{self::Class::field}{self::Number}, 1);
self::expect(n0, v.{self::Class::field}{self::Number});
self::expect(n0, self::ClassExtension|get#property(v));
self::expect(n1, let final self::Class #t71 = v in let final self::Number #t72 = self::NumberExtension|+(self::ClassExtension|get#property(#t71), n1) in let final void #t73 = self::ClassExtension|set#property(#t71, #t72) in #t72);
self::expect(n2, let final self::Class #t74 = v in let final self::Number #t75 = self::NumberExtension|+(self::ClassExtension|get#property(#t74), n1) in let final void #t76 = self::ClassExtension|set#property(#t74, #t75) in #t75);
self::expect(n0, let final self::Class #t77 = v in let final self::Number #t78 = self::NumberExtension|-(self::ClassExtension|get#property(#t77), n2) in let final void #t79 = self::ClassExtension|set#property(#t77, #t78) in #t78);
self::expect(n1, let final self::Class #t80 = v in let final self::Number #t81 = self::NumberExtension|+(self::ClassExtension|get#property(#t80), n1) in let final void #t82 = self::ClassExtension|set#property(#t80, #t81) in #t81);
self::expect(n0, let final self::Class #t83 = v in let final self::Number #t84 = self::NumberExtension|-(self::ClassExtension|get#property(#t83), n1) in let final void #t85 = self::ClassExtension|set#property(#t83, #t84) in #t84);
self::expect(n1, let final self::Class #t86 = v in let final self::Number #t87 = self::NumberExtension|+(self::ClassExtension|get#property(#t86), 1) in let final void #t88 = self::ClassExtension|set#property(#t86, #t87) in #t87);
self::expect(n0, let final self::Class #t89 = v in let final self::Number #t90 = self::NumberExtension|-(self::ClassExtension|get#property(#t89), 1) in let final void #t91 = self::ClassExtension|set#property(#t89, #t90) in #t90);
self::expect(n0, let final self::Class #t92 = v in let final self::Number #t93 = self::ClassExtension|get#property(#t92) in let final void #t94 = self::ClassExtension|set#property(#t92, self::NumberExtension|+(#t93, 1)) in #t93);
self::expect(n1, let final self::Class #t95 = v in let final self::Number #t96 = self::ClassExtension|get#property(#t95) in let final void #t97 = self::ClassExtension|set#property(#t95, self::NumberExtension|-(#t96, 1)) in #t96);
self::expect(n0, self::ClassExtension|get#property(v));
self::expect(n0, self::ClassExtension|get#property(v));
let final self::Class #t98 = v in self::ClassExtension|set#property(#t98, self::NumberExtension|+(self::ClassExtension|get#property(#t98), n1));
self::expect(n1, self::ClassExtension|get#property(v));
let final self::Class #t99 = v in self::ClassExtension|set#property(#t99, self::NumberExtension|+(self::ClassExtension|get#property(#t99), n1));
self::expect(n2, self::ClassExtension|get#property(v));
let final self::Class #t100 = v in self::ClassExtension|set#property(#t100, self::NumberExtension|-(self::ClassExtension|get#property(#t100), n2));
self::expect(n0, self::ClassExtension|get#property(v));
let final self::Class #t101 = v in self::ClassExtension|set#property(#t101, self::NumberExtension|+(self::ClassExtension|get#property(#t101), n1));
self::expect(n1, self::ClassExtension|get#property(v));
let final self::Class #t102 = v in self::ClassExtension|set#property(#t102, self::NumberExtension|-(self::ClassExtension|get#property(#t102), n1));
self::expect(n0, self::ClassExtension|get#property(v));
let final self::Class #t103 = v in let final self::Number #t104 = self::NumberExtension|+(self::ClassExtension|get#property(#t103), 1) in let final void #t105 = self::ClassExtension|set#property(#t103, #t104) in #t104;
self::expect(n1, self::ClassExtension|get#property(v));
let final self::Class #t106 = v in let final self::Number #t107 = self::NumberExtension|-(self::ClassExtension|get#property(#t106), 1) in let final void #t108 = self::ClassExtension|set#property(#t106, #t107) in #t107;
self::expect(n0, self::ClassExtension|get#property(v));
let final self::Class #t109 = v in self::ClassExtension|set#property(#t109, self::NumberExtension|+(self::ClassExtension|get#property(#t109), 1));
self::expect(n1, self::ClassExtension|get#property(v));
let final self::Class #t110 = v in self::ClassExtension|set#property(#t110, self::NumberExtension|-(self::ClassExtension|get#property(#t110), 1));
self::expect(n0, self::ClassExtension|get#property(v));
}
static method testIntProperties() dynamic {
core::int n0 = 0;
core::int n1 = 1;
core::int n2 = 2;
self::IntClass v = new self::IntClass::•(n0);
self::expect(n0, v.{self::IntClass::field}{core::int});
self::expect(n1, let final self::IntClass #t111 = v in #t111.{self::IntClass::field} = #t111.{self::IntClass::field}{core::int}.{core::num::+}(n1){(core::num) → core::int});
self::expect(n2, let final self::IntClass #t112 = v in #t112.{self::IntClass::field} = #t112.{self::IntClass::field}{core::int}.{core::num::+}(n1){(core::num) → core::int});
self::expect(n0, let final self::IntClass #t113 = v in #t113.{self::IntClass::field} = #t113.{self::IntClass::field}{core::int}.{core::num::-}(n2){(core::num) → core::int});
self::expect(n1, let final self::IntClass #t114 = v in #t114.{self::IntClass::field} = #t114.{self::IntClass::field}{core::int}.{core::num::+}(n1){(core::num) → core::int});
self::expect(n0, let final self::IntClass #t115 = v in #t115.{self::IntClass::field} = #t115.{self::IntClass::field}{core::int}.{core::num::-}(n1){(core::num) → core::int});
self::expect(n1, let final self::IntClass #t116 = v in #t116.{self::IntClass::field} = #t116.{self::IntClass::field}{core::int}.{core::num::+}(1){(core::num) → core::int});
self::expect(n0, let final self::IntClass #t117 = v in #t117.{self::IntClass::field} = #t117.{self::IntClass::field}{core::int}.{core::num::-}(1){(core::num) → core::int});
self::expect(n0, let final self::IntClass #t118 = v in let final core::int #t119 = #t118.{self::IntClass::field}{core::int} in let final void #t120 = #t118.{self::IntClass::field} = #t119.{core::num::+}(1){(core::num) → core::int} in #t119);
self::expect(n1, let final self::IntClass #t121 = v in let final core::int #t122 = #t121.{self::IntClass::field}{core::int} in let final void #t123 = #t121.{self::IntClass::field} = #t122.{core::num::-}(1){(core::num) → core::int} in #t122);
self::expect(n0, v.{self::IntClass::field}{core::int});
self::expect(n0, v.{self::IntClass::field}{core::int});
let final self::IntClass #t124 = v in #t124.{self::IntClass::field} = #t124.{self::IntClass::field}{core::int}.{core::num::+}(n1){(core::num) → core::int};
self::expect(n1, v.{self::IntClass::field}{core::int});
let final self::IntClass #t125 = v in #t125.{self::IntClass::field} = #t125.{self::IntClass::field}{core::int}.{core::num::+}(n1){(core::num) → core::int};
self::expect(n2, v.{self::IntClass::field}{core::int});
let final self::IntClass #t126 = v in #t126.{self::IntClass::field} = #t126.{self::IntClass::field}{core::int}.{core::num::-}(n2){(core::num) → core::int};
self::expect(n0, v.{self::IntClass::field}{core::int});
let final self::IntClass #t127 = v in #t127.{self::IntClass::field} = #t127.{self::IntClass::field}{core::int}.{core::num::+}(n1){(core::num) → core::int};
self::expect(n1, v.{self::IntClass::field}{core::int});
let final self::IntClass #t128 = v in #t128.{self::IntClass::field} = #t128.{self::IntClass::field}{core::int}.{core::num::-}(n1){(core::num) → core::int};
self::expect(n0, v.{self::IntClass::field}{core::int});
let final self::IntClass #t129 = v in #t129.{self::IntClass::field} = #t129.{self::IntClass::field}{core::int}.{core::num::+}(1){(core::num) → core::int};
self::expect(n1, v.{self::IntClass::field}{core::int});
let final self::IntClass #t130 = v in #t130.{self::IntClass::field} = #t130.{self::IntClass::field}{core::int}.{core::num::-}(1){(core::num) → core::int};
self::expect(n0, v.{self::IntClass::field}{core::int});
let final self::IntClass #t131 = v in #t131.{self::IntClass::field} = #t131.{self::IntClass::field}{core::int}.{core::num::+}(1){(core::num) → core::int};
self::expect(n1, v.{self::IntClass::field}{core::int});
let final self::IntClass #t132 = v in #t132.{self::IntClass::field} = #t132.{self::IntClass::field}{core::int}.{core::num::-}(1){(core::num) → core::int};
self::expect(n0, v.{self::IntClass::field}{core::int});
self::expect(n0, self::IntClassExtension|get#property(v));
self::expect(n1, let final self::IntClass #t133 = v in let final core::int #t134 = self::IntClassExtension|get#property(#t133).{core::num::+}(n1){(core::num) → core::int} in let final void #t135 = self::IntClassExtension|set#property(#t133, #t134) in #t134);
self::expect(n2, let final self::IntClass #t136 = v in let final core::int #t137 = self::IntClassExtension|get#property(#t136).{core::num::+}(n1){(core::num) → core::int} in let final void #t138 = self::IntClassExtension|set#property(#t136, #t137) in #t137);
self::expect(n0, let final self::IntClass #t139 = v in let final core::int #t140 = self::IntClassExtension|get#property(#t139).{core::num::-}(n2){(core::num) → core::int} in let final void #t141 = self::IntClassExtension|set#property(#t139, #t140) in #t140);
self::expect(n1, let final self::IntClass #t142 = v in let final core::int #t143 = self::IntClassExtension|get#property(#t142).{core::num::+}(n1){(core::num) → core::int} in let final void #t144 = self::IntClassExtension|set#property(#t142, #t143) in #t143);
self::expect(n0, let final self::IntClass #t145 = v in let final core::int #t146 = self::IntClassExtension|get#property(#t145).{core::num::-}(n1){(core::num) → core::int} in let final void #t147 = self::IntClassExtension|set#property(#t145, #t146) in #t146);
self::expect(n1, let final self::IntClass #t148 = v in let final core::int #t149 = self::IntClassExtension|get#property(#t148).{core::num::+}(1){(core::num) → core::int} in let final void #t150 = self::IntClassExtension|set#property(#t148, #t149) in #t149);
self::expect(n0, let final self::IntClass #t151 = v in let final core::int #t152 = self::IntClassExtension|get#property(#t151).{core::num::-}(1){(core::num) → core::int} in let final void #t153 = self::IntClassExtension|set#property(#t151, #t152) in #t152);
self::expect(n0, let final self::IntClass #t154 = v in let final core::int #t155 = self::IntClassExtension|get#property(#t154) in let final void #t156 = self::IntClassExtension|set#property(#t154, #t155.{core::num::+}(1){(core::num) → core::int}) in #t155);
self::expect(n1, let final self::IntClass #t157 = v in let final core::int #t158 = self::IntClassExtension|get#property(#t157) in let final void #t159 = self::IntClassExtension|set#property(#t157, #t158.{core::num::-}(1){(core::num) → core::int}) in #t158);
self::expect(n0, self::IntClassExtension|get#property(v));
self::expect(n0, self::IntClassExtension|get#property(v));
let final self::IntClass #t160 = v in self::IntClassExtension|set#property(#t160, self::IntClassExtension|get#property(#t160).{core::num::+}(n1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(v));
let final self::IntClass #t161 = v in self::IntClassExtension|set#property(#t161, self::IntClassExtension|get#property(#t161).{core::num::+}(n1){(core::num) → core::int});
self::expect(n2, self::IntClassExtension|get#property(v));
let final self::IntClass #t162 = v in self::IntClassExtension|set#property(#t162, self::IntClassExtension|get#property(#t162).{core::num::-}(n2){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(v));
let final self::IntClass #t163 = v in self::IntClassExtension|set#property(#t163, self::IntClassExtension|get#property(#t163).{core::num::+}(n1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(v));
let final self::IntClass #t164 = v in self::IntClassExtension|set#property(#t164, self::IntClassExtension|get#property(#t164).{core::num::-}(n1){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(v));
let final self::IntClass #t165 = v in let final core::int #t166 = self::IntClassExtension|get#property(#t165).{core::num::+}(1){(core::num) → core::int} in let final void #t167 = self::IntClassExtension|set#property(#t165, #t166) in #t166;
self::expect(n1, self::IntClassExtension|get#property(v));
let final self::IntClass #t168 = v in let final core::int #t169 = self::IntClassExtension|get#property(#t168).{core::num::-}(1){(core::num) → core::int} in let final void #t170 = self::IntClassExtension|set#property(#t168, #t169) in #t169;
self::expect(n0, self::IntClassExtension|get#property(v));
let final self::IntClass #t171 = v in self::IntClassExtension|set#property(#t171, self::IntClassExtension|get#property(#t171).{core::num::+}(1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(v));
let final self::IntClass #t172 = v in self::IntClassExtension|set#property(#t172, self::IntClassExtension|get#property(#t172).{core::num::-}(1){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(v));
}
static method testExplicitProperties() dynamic {
self::Number n0 = new self::Number::•(0);
self::Number n1 = new self::Number::•(1);
self::Number n2 = new self::Number::•(2);
self::Class v = new self::Class::•(n0);
self::expect(n0, self::ClassExtension|get#property(v));
self::expect(n1, let final self::Class #t173 = v in let final self::Number #t174 = self::NumberExtension|+(self::ClassExtension|get#property(#t173), n1) in let final void #t175 = self::ClassExtension|set#property(#t173, #t174) in #t174);
self::expect(n2, let final self::Class #t176 = v in let final self::Number #t177 = self::NumberExtension|+(self::ClassExtension|get#property(#t176), n1) in let final void #t178 = self::ClassExtension|set#property(#t176, #t177) in #t177);
self::expect(n0, let final self::Class #t179 = v in let final self::Number #t180 = self::NumberExtension|-(self::ClassExtension|get#property(#t179), n2) in let final void #t181 = self::ClassExtension|set#property(#t179, #t180) in #t180);
self::expect(n1, let final self::Class #t182 = v in let final self::Number #t183 = self::NumberExtension|+(self::ClassExtension|get#property(#t182), n1) in let final void #t184 = self::ClassExtension|set#property(#t182, #t183) in #t183);
self::expect(n0, let final self::Class #t185 = v in let final self::Number #t186 = self::NumberExtension|-(self::ClassExtension|get#property(#t185), n1) in let final void #t187 = self::ClassExtension|set#property(#t185, #t186) in #t186);
self::expect(n1, let final self::Class #t188 = v in let final self::Number #t189 = self::NumberExtension|+(self::ClassExtension|get#property(#t188), 1) in let final void #t190 = self::ClassExtension|set#property(#t188, #t189) in #t189);
self::expect(n0, let final self::Class #t191 = v in let final self::Number #t192 = self::NumberExtension|-(self::ClassExtension|get#property(#t191), 1) in let final void #t193 = self::ClassExtension|set#property(#t191, #t192) in #t192);
self::expect(n0, let final self::Class #t194 = v in let final self::Number #t195 = self::ClassExtension|get#property(#t194) in let final void #t196 = self::ClassExtension|set#property(#t194, self::NumberExtension|+(#t195, 1)) in #t195);
self::expect(n1, let final self::Class #t197 = v in let final self::Number #t198 = self::ClassExtension|get#property(#t197) in let final void #t199 = self::ClassExtension|set#property(#t197, self::NumberExtension|-(#t198, 1)) in #t198);
self::expect(n0, self::ClassExtension|get#property(v));
self::expect(n0, self::ClassExtension|get#property(v));
let final self::Class #t200 = v in self::ClassExtension|set#property(#t200, self::NumberExtension|+(self::ClassExtension|get#property(#t200), n1));
self::expect(n1, self::ClassExtension|get#property(v));
let final self::Class #t201 = v in self::ClassExtension|set#property(#t201, self::NumberExtension|+(self::ClassExtension|get#property(#t201), n1));
self::expect(n2, self::ClassExtension|get#property(v));
let final self::Class #t202 = v in self::ClassExtension|set#property(#t202, self::NumberExtension|-(self::ClassExtension|get#property(#t202), n2));
self::expect(n0, self::ClassExtension|get#property(v));
let final self::Class #t203 = v in self::ClassExtension|set#property(#t203, self::NumberExtension|+(self::ClassExtension|get#property(#t203), n1));
self::expect(n1, self::ClassExtension|get#property(v));
let final self::Class #t204 = v in self::ClassExtension|set#property(#t204, self::NumberExtension|-(self::ClassExtension|get#property(#t204), n1));
self::expect(n0, self::ClassExtension|get#property(v));
let final self::Class #t205 = v in let final self::Number #t206 = self::NumberExtension|+(self::ClassExtension|get#property(#t205), 1) in let final void #t207 = self::ClassExtension|set#property(#t205, #t206) in #t206;
self::expect(n1, self::ClassExtension|get#property(v));
let final self::Class #t208 = v in let final self::Number #t209 = self::NumberExtension|-(self::ClassExtension|get#property(#t208), 1) in let final void #t210 = self::ClassExtension|set#property(#t208, #t209) in #t209;
self::expect(n0, self::ClassExtension|get#property(v));
let final self::Class #t211 = v in self::ClassExtension|set#property(#t211, self::NumberExtension|+(self::ClassExtension|get#property(#t211), 1));
self::expect(n1, self::ClassExtension|get#property(v));
let final self::Class #t212 = v in self::ClassExtension|set#property(#t212, self::NumberExtension|-(self::ClassExtension|get#property(#t212), 1));
self::expect(n0, self::ClassExtension|get#property(v));
}
static method testExplicitIntProperties() dynamic {
core::int n0 = 0;
core::int n1 = 1;
core::int n2 = 2;
self::IntClass v = new self::IntClass::•(n0);
self::expect(n0, self::IntClassExtension|get#property(v));
self::expect(n1, let final self::IntClass #t213 = v in let final core::int #t214 = self::IntClassExtension|get#property(#t213).{core::num::+}(n1){(core::num) → core::int} in let final void #t215 = self::IntClassExtension|set#property(#t213, #t214) in #t214);
self::expect(n2, let final self::IntClass #t216 = v in let final core::int #t217 = self::IntClassExtension|get#property(#t216).{core::num::+}(n1){(core::num) → core::int} in let final void #t218 = self::IntClassExtension|set#property(#t216, #t217) in #t217);
self::expect(n0, let final self::IntClass #t219 = v in let final core::int #t220 = self::IntClassExtension|get#property(#t219).{core::num::-}(n2){(core::num) → core::int} in let final void #t221 = self::IntClassExtension|set#property(#t219, #t220) in #t220);
self::expect(n1, let final self::IntClass #t222 = v in let final core::int #t223 = self::IntClassExtension|get#property(#t222).{core::num::+}(n1){(core::num) → core::int} in let final void #t224 = self::IntClassExtension|set#property(#t222, #t223) in #t223);
self::expect(n0, let final self::IntClass #t225 = v in let final core::int #t226 = self::IntClassExtension|get#property(#t225).{core::num::-}(n1){(core::num) → core::int} in let final void #t227 = self::IntClassExtension|set#property(#t225, #t226) in #t226);
self::expect(n1, let final self::IntClass #t228 = v in let final core::int #t229 = self::IntClassExtension|get#property(#t228).{core::num::+}(1){(core::num) → core::int} in let final void #t230 = self::IntClassExtension|set#property(#t228, #t229) in #t229);
self::expect(n0, let final self::IntClass #t231 = v in let final core::int #t232 = self::IntClassExtension|get#property(#t231).{core::num::-}(1){(core::num) → core::int} in let final void #t233 = self::IntClassExtension|set#property(#t231, #t232) in #t232);
self::expect(n0, let final self::IntClass #t234 = v in let final core::int #t235 = self::IntClassExtension|get#property(#t234) in let final void #t236 = self::IntClassExtension|set#property(#t234, #t235.{core::num::+}(1){(core::num) → core::int}) in #t235);
self::expect(n1, let final self::IntClass #t237 = v in let final core::int #t238 = self::IntClassExtension|get#property(#t237) in let final void #t239 = self::IntClassExtension|set#property(#t237, #t238.{core::num::-}(1){(core::num) → core::int}) in #t238);
self::expect(n0, self::IntClassExtension|get#property(v));
self::expect(n0, self::IntClassExtension|get#property(v));
let final self::IntClass #t240 = v in self::IntClassExtension|set#property(#t240, self::IntClassExtension|get#property(#t240).{core::num::+}(n1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(v));
let final self::IntClass #t241 = v in self::IntClassExtension|set#property(#t241, self::IntClassExtension|get#property(#t241).{core::num::+}(n1){(core::num) → core::int});
self::expect(n2, self::IntClassExtension|get#property(v));
let final self::IntClass #t242 = v in self::IntClassExtension|set#property(#t242, self::IntClassExtension|get#property(#t242).{core::num::-}(n2){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(v));
let final self::IntClass #t243 = v in self::IntClassExtension|set#property(#t243, self::IntClassExtension|get#property(#t243).{core::num::+}(n1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(v));
let final self::IntClass #t244 = v in self::IntClassExtension|set#property(#t244, self::IntClassExtension|get#property(#t244).{core::num::-}(n1){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(v));
let final self::IntClass #t245 = v in let final core::int #t246 = self::IntClassExtension|get#property(#t245).{core::num::+}(1){(core::num) → core::int} in let final void #t247 = self::IntClassExtension|set#property(#t245, #t246) in #t246;
self::expect(n1, self::IntClassExtension|get#property(v));
let final self::IntClass #t248 = v in let final core::int #t249 = self::IntClassExtension|get#property(#t248).{core::num::-}(1){(core::num) → core::int} in let final void #t250 = self::IntClassExtension|set#property(#t248, #t249) in #t249;
self::expect(n0, self::IntClassExtension|get#property(v));
let final self::IntClass #t251 = v in self::IntClassExtension|set#property(#t251, self::IntClassExtension|get#property(#t251).{core::num::+}(1){(core::num) → core::int});
self::expect(n1, self::IntClassExtension|get#property(v));
let final self::IntClass #t252 = v in self::IntClassExtension|set#property(#t252, self::IntClassExtension|get#property(#t252).{core::num::-}(1){(core::num) → core::int});
self::expect(n0, self::IntClassExtension|get#property(v));
}
static method testExplicitNullAwareProperties(self::Class? v) dynamic {
self::Number n0 = new self::Number::•(0);
self::Number n1 = new self::Number::•(1);
self::Number n2 = new self::Number::•(2);
self::expect(n0, let final self::Class? #t253 = v in #t253 == null ?{self::Number?} null : self::ClassExtension|get#property(#t253{self::Class}), v == null);
self::expect(n1, let final self::Class? #t254 = v in #t254 == null ?{self::Number?} null : let final self::Number #t255 = self::NumberExtension|+(self::ClassExtension|get#property(#t254{self::Class}), n1) in let final void #t256 = self::ClassExtension|set#property(#t254{self::Class}, #t255) in #t255, v == null);
self::expect(n2, let final self::Class? #t257 = v in #t257 == null ?{self::Number?} null : let final self::Number #t258 = self::NumberExtension|+(self::ClassExtension|get#property(#t257{self::Class}), n1) in let final void #t259 = self::ClassExtension|set#property(#t257{self::Class}, #t258) in #t258, v == null);
self::expect(n0, let final self::Class? #t260 = v in #t260 == null ?{self::Number?} null : let final self::Number #t261 = self::NumberExtension|-(self::ClassExtension|get#property(#t260{self::Class}), n2) in let final void #t262 = self::ClassExtension|set#property(#t260{self::Class}, #t261) in #t261, v == null);
self::expect(n1, let final self::Class? #t263 = v in #t263 == null ?{self::Number?} null : let final self::Number #t264 = self::NumberExtension|+(self::ClassExtension|get#property(#t263{self::Class}), n1) in let final void #t265 = self::ClassExtension|set#property(#t263{self::Class}, #t264) in #t264, v == null);
self::expect(n0, let final self::Class? #t266 = v in #t266 == null ?{self::Number?} null : let final self::Number #t267 = self::NumberExtension|-(self::ClassExtension|get#property(#t266{self::Class}), n1) in let final void #t268 = self::ClassExtension|set#property(#t266{self::Class}, #t267) in #t267, v == null);
self::expect(n1, let final self::Class? #t269 = v in #t269 == null ?{self::Number?} null : let final self::Number #t270 = self::NumberExtension|+(self::ClassExtension|get#property(#t269{self::Class}), 1) in let final void #t271 = self::ClassExtension|set#property(#t269{self::Class}, #t270) in #t270, v == null);
self::expect(n0, let final self::Class? #t272 = v in #t272 == null ?{self::Number?} null : let final self::Number #t273 = self::NumberExtension|-(self::ClassExtension|get#property(#t272{self::Class}), 1) in let final void #t274 = self::ClassExtension|set#property(#t272{self::Class}, #t273) in #t273, v == null);
self::expect(n0, let final self::Class? #t275 = v in #t275 == null ?{self::Number?} null : let final self::Number #t276 = self::ClassExtension|get#property(#t275{self::Class}) in let final void #t277 = self::ClassExtension|set#property(#t275{self::Class}, self::NumberExtension|+(#t276, 1)) in #t276, v == null);
self::expect(n1, let final self::Class? #t278 = v in #t278 == null ?{self::Number?} null : let final self::Number #t279 = self::ClassExtension|get#property(#t278{self::Class}) in let final void #t280 = self::ClassExtension|set#property(#t278{self::Class}, self::NumberExtension|-(#t279, 1)) in #t279, v == null);
self::expect(n0, let final self::Class? #t281 = v in #t281 == null ?{self::Number?} null : self::ClassExtension|get#property(#t281{self::Class}), v == null);
self::expect(n0, let final self::Class? #t282 = v in #t282 == null ?{self::Number?} null : self::ClassExtension|get#property(#t282{self::Class}), v == null);
let final self::Class? #t283 = v in #t283 == null ?{self::Number?} null : self::ClassExtension|set#property(#t283{self::Class}, self::NumberExtension|+(self::ClassExtension|get#property(#t283{self::Class}), n1));
self::expect(n1, let final self::Class? #t284 = v in #t284 == null ?{self::Number?} null : self::ClassExtension|get#property(#t284{self::Class}), v == null);
let final self::Class? #t285 = v in #t285 == null ?{self::Number?} null : self::ClassExtension|set#property(#t285{self::Class}, self::NumberExtension|+(self::ClassExtension|get#property(#t285{self::Class}), n1));
self::expect(n2, let final self::Class? #t286 = v in #t286 == null ?{self::Number?} null : self::ClassExtension|get#property(#t286{self::Class}), v == null);
let final self::Class? #t287 = v in #t287 == null ?{self::Number?} null : self::ClassExtension|set#property(#t287{self::Class}, self::NumberExtension|-(self::ClassExtension|get#property(#t287{self::Class}), n2));
self::expect(n0, let final self::Class? #t288 = v in #t288 == null ?{self::Number?} null : self::ClassExtension|get#property(#t288{self::Class}), v == null);
let final self::Class? #t289 = v in #t289 == null ?{self::Number?} null : self::ClassExtension|set#property(#t289{self::Class}, self::NumberExtension|+(self::ClassExtension|get#property(#t289{self::Class}), n1));
self::expect(n1, let final self::Class? #t290 = v in #t290 == null ?{self::Number?} null : self::ClassExtension|get#property(#t290{self::Class}), v == null);
let final self::Class? #t291 = v in #t291 == null ?{self::Number?} null : self::ClassExtension|set#property(#t291{self::Class}, self::NumberExtension|-(self::ClassExtension|get#property(#t291{self::Class}), n1));
self::expect(n0, let final self::Class? #t292 = v in #t292 == null ?{self::Number?} null : self::ClassExtension|get#property(#t292{self::Class}), v == null);
let final self::Class? #t293 = v in #t293 == null ?{self::Number?} null : let final self::Number #t294 = self::NumberExtension|+(self::ClassExtension|get#property(#t293{self::Class}), 1) in let final void #t295 = self::ClassExtension|set#property(#t293{self::Class}, #t294) in #t294;
self::expect(n1, let final self::Class? #t296 = v in #t296 == null ?{self::Number?} null : self::ClassExtension|get#property(#t296{self::Class}), v == null);
let final self::Class? #t297 = v in #t297 == null ?{self::Number?} null : let final self::Number #t298 = self::NumberExtension|-(self::ClassExtension|get#property(#t297{self::Class}), 1) in let final void #t299 = self::ClassExtension|set#property(#t297{self::Class}, #t298) in #t298;
self::expect(n0, let final self::Class? #t300 = v in #t300 == null ?{self::Number?} null : self::ClassExtension|get#property(#t300{self::Class}), v == null);
let final self::Class? #t301 = v in #t301 == null ?{self::Number?} null : self::ClassExtension|set#property(#t301{self::Class}, self::NumberExtension|+(self::ClassExtension|get#property(#t301{self::Class}), 1));
self::expect(n1, let final self::Class? #t302 = v in #t302 == null ?{self::Number?} null : self::ClassExtension|get#property(#t302{self::Class}), v == null);
let final self::Class? #t303 = v in #t303 == null ?{self::Number?} null : self::ClassExtension|set#property(#t303{self::Class}, self::NumberExtension|-(self::ClassExtension|get#property(#t303{self::Class}), 1));
self::expect(n0, let final self::Class? #t304 = v in #t304 == null ?{self::Number?} null : self::ClassExtension|get#property(#t304{self::Class}), v == null);
}
static method testExplicitNullAwareIntProperties(self::IntClass? v) dynamic {
core::int n0 = 0;
core::int n1 = 1;
core::int n2 = 2;
self::expect(n0, let final self::IntClass? #t305 = v in #t305 == null ?{core::int?} null : self::IntClassExtension|get#property(#t305{self::IntClass}), v == null);
self::expect(n1, let final self::IntClass? #t306 = v in #t306 == null ?{core::int?} null : let final core::int #t307 = self::IntClassExtension|get#property(#t306{self::IntClass}).{core::num::+}(n1){(core::num) → core::int} in let final void #t308 = self::IntClassExtension|set#property(#t306{self::IntClass}, #t307) in #t307, v == null);
self::expect(n2, let final self::IntClass? #t309 = v in #t309 == null ?{core::int?} null : let final core::int #t310 = self::IntClassExtension|get#property(#t309{self::IntClass}).{core::num::+}(n1){(core::num) → core::int} in let final void #t311 = self::IntClassExtension|set#property(#t309{self::IntClass}, #t310) in #t310, v == null);
self::expect(n0, let final self::IntClass? #t312 = v in #t312 == null ?{core::int?} null : let final core::int #t313 = self::IntClassExtension|get#property(#t312{self::IntClass}).{core::num::-}(n2){(core::num) → core::int} in let final void #t314 = self::IntClassExtension|set#property(#t312{self::IntClass}, #t313) in #t313, v == null);
self::expect(n1, let final self::IntClass? #t315 = v in #t315 == null ?{core::int?} null : let final core::int #t316 = self::IntClassExtension|get#property(#t315{self::IntClass}).{core::num::+}(n1){(core::num) → core::int} in let final void #t317 = self::IntClassExtension|set#property(#t315{self::IntClass}, #t316) in #t316, v == null);
self::expect(n0, let final self::IntClass? #t318 = v in #t318 == null ?{core::int?} null : let final core::int #t319 = self::IntClassExtension|get#property(#t318{self::IntClass}).{core::num::-}(n1){(core::num) → core::int} in let final void #t320 = self::IntClassExtension|set#property(#t318{self::IntClass}, #t319) in #t319, v == null);
self::expect(n1, let final self::IntClass? #t321 = v in #t321 == null ?{core::int?} null : let final core::int #t322 = self::IntClassExtension|get#property(#t321{self::IntClass}).{core::num::+}(1){(core::num) → core::int} in let final void #t323 = self::IntClassExtension|set#property(#t321{self::IntClass}, #t322) in #t322, v == null);
self::expect(n0, let final self::IntClass? #t324 = v in #t324 == null ?{core::int?} null : let final core::int #t325 = self::IntClassExtension|get#property(#t324{self::IntClass}).{core::num::-}(1){(core::num) → core::int} in let final void #t326 = self::IntClassExtension|set#property(#t324{self::IntClass}, #t325) in #t325, v == null);
self::expect(n0, let final self::IntClass? #t327 = v in #t327 == null ?{core::int?} null : let final core::int #t328 = self::IntClassExtension|get#property(#t327{self::IntClass}) in let final void #t329 = self::IntClassExtension|set#property(#t327{self::IntClass}, #t328.{core::num::+}(1){(core::num) → core::int}) in #t328, v == null);
self::expect(n1, let final self::IntClass? #t330 = v in #t330 == null ?{core::int?} null : let final core::int #t331 = self::IntClassExtension|get#property(#t330{self::IntClass}) in let final void #t332 = self::IntClassExtension|set#property(#t330{self::IntClass}, #t331.{core::num::-}(1){(core::num) → core::int}) in #t331, v == null);
self::expect(n0, let final self::IntClass? #t333 = v in #t333 == null ?{core::int?} null : self::IntClassExtension|get#property(#t333{self::IntClass}), v == null);
self::expect(n0, let final self::IntClass? #t334 = v in #t334 == null ?{core::int?} null : self::IntClassExtension|get#property(#t334{self::IntClass}), v == null);
let final self::IntClass? #t335 = v in #t335 == null ?{core::int?} null : self::IntClassExtension|set#property(#t335{self::IntClass}, self::IntClassExtension|get#property(#t335{self::IntClass}).{core::num::+}(n1){(core::num) → core::int});
self::expect(n1, let final self::IntClass? #t336 = v in #t336 == null ?{core::int?} null : self::IntClassExtension|get#property(#t336{self::IntClass}), v == null);
let final self::IntClass? #t337 = v in #t337 == null ?{core::int?} null : self::IntClassExtension|set#property(#t337{self::IntClass}, self::IntClassExtension|get#property(#t337{self::IntClass}).{core::num::+}(n1){(core::num) → core::int});
self::expect(n2, let final self::IntClass? #t338 = v in #t338 == null ?{core::int?} null : self::IntClassExtension|get#property(#t338{self::IntClass}), v == null);
let final self::IntClass? #t339 = v in #t339 == null ?{core::int?} null : self::IntClassExtension|set#property(#t339{self::IntClass}, self::IntClassExtension|get#property(#t339{self::IntClass}).{core::num::-}(n2){(core::num) → core::int});
self::expect(n0, let final self::IntClass? #t340 = v in #t340 == null ?{core::int?} null : self::IntClassExtension|get#property(#t340{self::IntClass}), v == null);
let final self::IntClass? #t341 = v in #t341 == null ?{core::int?} null : self::IntClassExtension|set#property(#t341{self::IntClass}, self::IntClassExtension|get#property(#t341{self::IntClass}).{core::num::+}(n1){(core::num) → core::int});
self::expect(n1, let final self::IntClass? #t342 = v in #t342 == null ?{core::int?} null : self::IntClassExtension|get#property(#t342{self::IntClass}), v == null);
let final self::IntClass? #t343 = v in #t343 == null ?{core::int?} null : self::IntClassExtension|set#property(#t343{self::IntClass}, self::IntClassExtension|get#property(#t343{self::IntClass}).{core::num::-}(n1){(core::num) → core::int});
self::expect(n0, let final self::IntClass? #t344 = v in #t344 == null ?{core::int?} null : self::IntClassExtension|get#property(#t344{self::IntClass}), v == null);
let final self::IntClass? #t345 = v in #t345 == null ?{core::int?} null : let final core::int #t346 = self::IntClassExtension|get#property(#t345{self::IntClass}).{core::num::+}(1){(core::num) → core::int} in let final void #t347 = self::IntClassExtension|set#property(#t345{self::IntClass}, #t346) in #t346;
self::expect(n1, let final self::IntClass? #t348 = v in #t348 == null ?{core::int?} null : self::IntClassExtension|get#property(#t348{self::IntClass}), v == null);
let final self::IntClass? #t349 = v in #t349 == null ?{core::int?} null : let final core::int #t350 = self::IntClassExtension|get#property(#t349{self::IntClass}).{core::num::-}(1){(core::num) → core::int} in let final void #t351 = self::IntClassExtension|set#property(#t349{self::IntClass}, #t350) in #t350;
self::expect(n0, let final self::IntClass? #t352 = v in #t352 == null ?{core::int?} null : self::IntClassExtension|get#property(#t352{self::IntClass}), v == null);
let final self::IntClass? #t353 = v in #t353 == null ?{core::int?} null : self::IntClassExtension|set#property(#t353{self::IntClass}, self::IntClassExtension|get#property(#t353{self::IntClass}).{core::num::+}(1){(core::num) → core::int});
self::expect(n1, let final self::IntClass? #t354 = v in #t354 == null ?{core::int?} null : self::IntClassExtension|get#property(#t354{self::IntClass}), v == null);
let final self::IntClass? #t355 = v in #t355 == null ?{core::int?} null : self::IntClassExtension|set#property(#t355{self::IntClass}, self::IntClassExtension|get#property(#t355{self::IntClass}).{core::num::-}(1){(core::num) → core::int});
self::expect(n0, let final self::IntClass? #t356 = v in #t356 == null ?{core::int?} null : self::IntClassExtension|get#property(#t356{self::IntClass}), v == null);
}
static method expect(dynamic expected, dynamic actual, [dynamic expectNull = #C1]) → dynamic {
if(expectNull as{TypeError,ForDynamic} core::bool) {
expected = null;
}
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual)) {
throw "Mismatch: expected=${expected}, actual=${actual}";
}
}
constants {
#C1 = false
}