| 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 |
| } |