56f46b0659
This changes the CFE expectation test suites to use unsound null safety as default to avoid passing --enable-experiments=no-non-nullable to opt out old test folders. This change removes most test folders from the 'strong' tester, since this now only supports sound null safety, which requires all libraries to be opted in. Instead, the 'weak' tester now runs all test folders. Additionally the 'outline' tester is changed to use unsound null safety so that it call be used on all test folders. The 'fast_strong' tester is removed since it should just be run locally and it can be run by passing an option to the other testers. References to non-existing 'shaker' folder has been removed from testing.json. Change-Id: Ibcc306f7b27d06b9637c205238bc408194f1d062 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184787 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com>
515 lines
55 KiB
Plaintext
515 lines
55 KiB
Plaintext
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::num::hashCode};
|
|
operator ==(core::Object* other) → core::bool*
|
|
return other is self::Number* && this.{self::Number::value}.{core::num::==}(other{self::Number*}.{self::Number::value});
|
|
method toString() → core::String*
|
|
return "Number(${this.{self::Number::value}})";
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
class Class extends core::Object {
|
|
field self::Number* field;
|
|
constructor •(self::Number* field) → self::Class*
|
|
: self::Class::field = field, super core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
class IntClass extends core::Object {
|
|
field core::int* field;
|
|
constructor •(core::int* field) → self::IntClass*
|
|
: self::IntClass::field = field, super core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
extension NumberExtension on self::Number* {
|
|
operator + = self::NumberExtension|+;
|
|
operator - = self::NumberExtension|-;
|
|
}
|
|
extension ClassExtension on self::Class* {
|
|
get property = self::ClassExtension|get#property;
|
|
method testImplicitProperties = self::ClassExtension|testImplicitProperties;
|
|
tearoff testImplicitProperties = self::ClassExtension|get#testImplicitProperties;
|
|
set property = self::ClassExtension|set#property;
|
|
}
|
|
extension IntClassExtension on self::IntClass* {
|
|
get property = self::IntClassExtension|get#property;
|
|
method testImplicitProperties = self::IntClassExtension|testImplicitProperties;
|
|
tearoff testImplicitProperties = self::IntClassExtension|get#testImplicitProperties;
|
|
set property = self::IntClassExtension|set#property;
|
|
}
|
|
static 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::num::+}(other{core::int*}));
|
|
}
|
|
else
|
|
if(other is self::Number*) {
|
|
return new self::Number::•(#this.{self::Number::value}.{core::num::+}(other{self::Number*}.{self::Number::value}));
|
|
}
|
|
else {
|
|
throw new core::ArgumentError::•("${other}");
|
|
}
|
|
}
|
|
static 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::num::-}(other{core::int*}));
|
|
}
|
|
else
|
|
if(other is self::Number*) {
|
|
return new self::Number::•(#this.{self::Number::value}.{core::num::-}(other{self::Number*}.{self::Number::value}));
|
|
}
|
|
else {
|
|
throw new core::ArgumentError::•("${other}");
|
|
}
|
|
}
|
|
static method ClassExtension|get#property(lowered final self::Class* #this) → self::Number*
|
|
return #this.{self::Class::field};
|
|
static method ClassExtension|set#property(lowered final self::Class* #this, self::Number* value) → void {
|
|
#this.{self::Class::field} = value;
|
|
}
|
|
static 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 self::Number* #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 self::Number* #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 method ClassExtension|get#testImplicitProperties(lowered final self::Class* #this) → () →* dynamic
|
|
return () → dynamic => self::ClassExtension|testImplicitProperties(#this);
|
|
static method IntClassExtension|get#property(lowered final self::IntClass* #this) → core::int*
|
|
return #this.{self::IntClass::field};
|
|
static method IntClassExtension|set#property(lowered final self::IntClass* #this, core::int* value) → void {
|
|
#this.{self::IntClass::field} = value;
|
|
}
|
|
static 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) 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) 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) 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) 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) 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) 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) 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 core::int* #t38 = self::IntClassExtension|set#property(#this, #t37.{core::num::+}(1)) in #t37);
|
|
self::expect(n1, let final core::int* #t39 = self::IntClassExtension|get#property(#this) in let final core::int* #t40 = self::IntClassExtension|set#property(#this, #t39.{core::num::-}(1)) 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));
|
|
self::expect(n1, self::IntClassExtension|get#property(#this));
|
|
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::+}(n1));
|
|
self::expect(n2, self::IntClassExtension|get#property(#this));
|
|
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(n2));
|
|
self::expect(n0, self::IntClassExtension|get#property(#this));
|
|
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::+}(n1));
|
|
self::expect(n1, self::IntClassExtension|get#property(#this));
|
|
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(n1));
|
|
self::expect(n0, self::IntClassExtension|get#property(#this));
|
|
let final core::int* #t41 = self::IntClassExtension|get#property(#this).{core::num::+}(1) 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) 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));
|
|
self::expect(n1, self::IntClassExtension|get#property(#this));
|
|
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(1));
|
|
self::expect(n0, self::IntClassExtension|get#property(#this));
|
|
}
|
|
static 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 self::Number* #t46 = v = self::NumberExtension|+(#t45, 1) in #t45);
|
|
self::expect(n1, let final self::Number* #t47 = v in let final self::Number* #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::expect(n1, let final self::Class* #t49 = v in #t49.{self::Class::field} = self::NumberExtension|+(#t49.{self::Class::field}, n1));
|
|
self::expect(n2, let final self::Class* #t50 = v in #t50.{self::Class::field} = self::NumberExtension|+(#t50.{self::Class::field}, n1));
|
|
self::expect(n0, let final self::Class* #t51 = v in #t51.{self::Class::field} = self::NumberExtension|-(#t51.{self::Class::field}, n2));
|
|
self::expect(n1, let final self::Class* #t52 = v in #t52.{self::Class::field} = self::NumberExtension|+(#t52.{self::Class::field}, n1));
|
|
self::expect(n0, let final self::Class* #t53 = v in #t53.{self::Class::field} = self::NumberExtension|-(#t53.{self::Class::field}, n1));
|
|
self::expect(n1, let final self::Class* #t54 = v in #t54.{self::Class::field} = self::NumberExtension|+(#t54.{self::Class::field}, 1));
|
|
self::expect(n0, let final self::Class* #t55 = v in #t55.{self::Class::field} = self::NumberExtension|-(#t55.{self::Class::field}, 1));
|
|
self::expect(n0, let final self::Class* #t56 = v in let final self::Number* #t57 = #t56.{self::Class::field} in let final self::Number* #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} in let final self::Number* #t61 = #t59.{self::Class::field} = self::NumberExtension|-(#t60, 1) in #t60);
|
|
self::expect(n0, v.{self::Class::field});
|
|
self::expect(n0, v.{self::Class::field});
|
|
let final self::Class* #t62 = v in #t62.{self::Class::field} = self::NumberExtension|+(#t62.{self::Class::field}, n1);
|
|
self::expect(n1, v.{self::Class::field});
|
|
let final self::Class* #t63 = v in #t63.{self::Class::field} = self::NumberExtension|+(#t63.{self::Class::field}, n1);
|
|
self::expect(n2, v.{self::Class::field});
|
|
let final self::Class* #t64 = v in #t64.{self::Class::field} = self::NumberExtension|-(#t64.{self::Class::field}, n2);
|
|
self::expect(n0, v.{self::Class::field});
|
|
let final self::Class* #t65 = v in #t65.{self::Class::field} = self::NumberExtension|+(#t65.{self::Class::field}, n1);
|
|
self::expect(n1, v.{self::Class::field});
|
|
let final self::Class* #t66 = v in #t66.{self::Class::field} = self::NumberExtension|-(#t66.{self::Class::field}, n1);
|
|
self::expect(n0, v.{self::Class::field});
|
|
let final self::Class* #t67 = v in #t67.{self::Class::field} = self::NumberExtension|+(#t67.{self::Class::field}, 1);
|
|
self::expect(n1, v.{self::Class::field});
|
|
let final self::Class* #t68 = v in #t68.{self::Class::field} = self::NumberExtension|-(#t68.{self::Class::field}, 1);
|
|
self::expect(n0, v.{self::Class::field});
|
|
let final self::Class* #t69 = v in #t69.{self::Class::field} = self::NumberExtension|+(#t69.{self::Class::field}, 1);
|
|
self::expect(n1, v.{self::Class::field});
|
|
let final self::Class* #t70 = v in #t70.{self::Class::field} = self::NumberExtension|-(#t70.{self::Class::field}, 1);
|
|
self::expect(n0, v.{self::Class::field});
|
|
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 self::Number* #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 self::Number* #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});
|
|
self::expect(n1, let final self::IntClass* #t111 = v in #t111.{self::IntClass::field} = #t111.{self::IntClass::field}.{core::num::+}(n1));
|
|
self::expect(n2, let final self::IntClass* #t112 = v in #t112.{self::IntClass::field} = #t112.{self::IntClass::field}.{core::num::+}(n1));
|
|
self::expect(n0, let final self::IntClass* #t113 = v in #t113.{self::IntClass::field} = #t113.{self::IntClass::field}.{core::num::-}(n2));
|
|
self::expect(n1, let final self::IntClass* #t114 = v in #t114.{self::IntClass::field} = #t114.{self::IntClass::field}.{core::num::+}(n1));
|
|
self::expect(n0, let final self::IntClass* #t115 = v in #t115.{self::IntClass::field} = #t115.{self::IntClass::field}.{core::num::-}(n1));
|
|
self::expect(n1, let final self::IntClass* #t116 = v in #t116.{self::IntClass::field} = #t116.{self::IntClass::field}.{core::num::+}(1));
|
|
self::expect(n0, let final self::IntClass* #t117 = v in #t117.{self::IntClass::field} = #t117.{self::IntClass::field}.{core::num::-}(1));
|
|
self::expect(n0, let final self::IntClass* #t118 = v in let final core::int* #t119 = #t118.{self::IntClass::field} in let final core::int* #t120 = #t118.{self::IntClass::field} = #t119.{core::num::+}(1) in #t119);
|
|
self::expect(n1, let final self::IntClass* #t121 = v in let final core::int* #t122 = #t121.{self::IntClass::field} in let final core::int* #t123 = #t121.{self::IntClass::field} = #t122.{core::num::-}(1) in #t122);
|
|
self::expect(n0, v.{self::IntClass::field});
|
|
self::expect(n0, v.{self::IntClass::field});
|
|
let final self::IntClass* #t124 = v in #t124.{self::IntClass::field} = #t124.{self::IntClass::field}.{core::num::+}(n1);
|
|
self::expect(n1, v.{self::IntClass::field});
|
|
let final self::IntClass* #t125 = v in #t125.{self::IntClass::field} = #t125.{self::IntClass::field}.{core::num::+}(n1);
|
|
self::expect(n2, v.{self::IntClass::field});
|
|
let final self::IntClass* #t126 = v in #t126.{self::IntClass::field} = #t126.{self::IntClass::field}.{core::num::-}(n2);
|
|
self::expect(n0, v.{self::IntClass::field});
|
|
let final self::IntClass* #t127 = v in #t127.{self::IntClass::field} = #t127.{self::IntClass::field}.{core::num::+}(n1);
|
|
self::expect(n1, v.{self::IntClass::field});
|
|
let final self::IntClass* #t128 = v in #t128.{self::IntClass::field} = #t128.{self::IntClass::field}.{core::num::-}(n1);
|
|
self::expect(n0, v.{self::IntClass::field});
|
|
let final self::IntClass* #t129 = v in #t129.{self::IntClass::field} = #t129.{self::IntClass::field}.{core::num::+}(1);
|
|
self::expect(n1, v.{self::IntClass::field});
|
|
let final self::IntClass* #t130 = v in #t130.{self::IntClass::field} = #t130.{self::IntClass::field}.{core::num::-}(1);
|
|
self::expect(n0, v.{self::IntClass::field});
|
|
let final self::IntClass* #t131 = v in #t131.{self::IntClass::field} = #t131.{self::IntClass::field}.{core::num::+}(1);
|
|
self::expect(n1, v.{self::IntClass::field});
|
|
let final self::IntClass* #t132 = v in #t132.{self::IntClass::field} = #t132.{self::IntClass::field}.{core::num::-}(1);
|
|
self::expect(n0, v.{self::IntClass::field});
|
|
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) 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) 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) 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) 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) 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) 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) 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 core::int* #t156 = self::IntClassExtension|set#property(#t154, #t155.{core::num::+}(1)) 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 core::int* #t159 = self::IntClassExtension|set#property(#t157, #t158.{core::num::-}(1)) 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));
|
|
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));
|
|
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));
|
|
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));
|
|
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));
|
|
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) 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) 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));
|
|
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));
|
|
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 self::Number* #t196 = let final self::Number* #t197 = self::NumberExtension|+(#t195, 1) in let final void #t198 = self::ClassExtension|set#property(#t194, #t197) in #t197 in #t195);
|
|
self::expect(n1, let final self::Class* #t199 = v in let final self::Number* #t200 = self::ClassExtension|get#property(#t199) in let final self::Number* #t201 = let final self::Number* #t202 = self::NumberExtension|-(#t200, 1) in let final void #t203 = self::ClassExtension|set#property(#t199, #t202) in #t202 in #t200);
|
|
self::expect(n0, self::ClassExtension|get#property(v));
|
|
self::expect(n0, 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(n1, self::ClassExtension|get#property(v));
|
|
let final self::Class* #t205 = v in self::ClassExtension|set#property(#t205, self::NumberExtension|+(self::ClassExtension|get#property(#t205), n1));
|
|
self::expect(n2, self::ClassExtension|get#property(v));
|
|
let final self::Class* #t206 = v in self::ClassExtension|set#property(#t206, self::NumberExtension|-(self::ClassExtension|get#property(#t206), n2));
|
|
self::expect(n0, self::ClassExtension|get#property(v));
|
|
let final self::Class* #t207 = v in self::ClassExtension|set#property(#t207, self::NumberExtension|+(self::ClassExtension|get#property(#t207), n1));
|
|
self::expect(n1, self::ClassExtension|get#property(v));
|
|
let final self::Class* #t208 = v in self::ClassExtension|set#property(#t208, self::NumberExtension|-(self::ClassExtension|get#property(#t208), n1));
|
|
self::expect(n0, self::ClassExtension|get#property(v));
|
|
let final self::Class* #t209 = v in let final self::Number* #t210 = self::NumberExtension|+(self::ClassExtension|get#property(#t209), 1) in let final void #t211 = self::ClassExtension|set#property(#t209, #t210) in #t210;
|
|
self::expect(n1, self::ClassExtension|get#property(v));
|
|
let final self::Class* #t212 = v in let final self::Number* #t213 = self::NumberExtension|-(self::ClassExtension|get#property(#t212), 1) in let final void #t214 = self::ClassExtension|set#property(#t212, #t213) in #t213;
|
|
self::expect(n0, self::ClassExtension|get#property(v));
|
|
let final self::Class* #t215 = v in self::ClassExtension|set#property(#t215, self::NumberExtension|+(self::ClassExtension|get#property(#t215), 1));
|
|
self::expect(n1, self::ClassExtension|get#property(v));
|
|
let final self::Class* #t216 = v in self::ClassExtension|set#property(#t216, self::NumberExtension|-(self::ClassExtension|get#property(#t216), 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* #t217 = v in let final core::int* #t218 = self::IntClassExtension|get#property(#t217).{core::num::+}(n1) in let final void #t219 = self::IntClassExtension|set#property(#t217, #t218) in #t218);
|
|
self::expect(n2, let final self::IntClass* #t220 = v in let final core::int* #t221 = self::IntClassExtension|get#property(#t220).{core::num::+}(n1) in let final void #t222 = self::IntClassExtension|set#property(#t220, #t221) in #t221);
|
|
self::expect(n0, let final self::IntClass* #t223 = v in let final core::int* #t224 = self::IntClassExtension|get#property(#t223).{core::num::-}(n2) in let final void #t225 = self::IntClassExtension|set#property(#t223, #t224) in #t224);
|
|
self::expect(n1, let final self::IntClass* #t226 = v in let final core::int* #t227 = self::IntClassExtension|get#property(#t226).{core::num::+}(n1) in let final void #t228 = self::IntClassExtension|set#property(#t226, #t227) in #t227);
|
|
self::expect(n0, let final self::IntClass* #t229 = v in let final core::int* #t230 = self::IntClassExtension|get#property(#t229).{core::num::-}(n1) in let final void #t231 = self::IntClassExtension|set#property(#t229, #t230) in #t230);
|
|
self::expect(n1, let final self::IntClass* #t232 = v in let final core::int* #t233 = self::IntClassExtension|get#property(#t232).{core::num::+}(1) in let final void #t234 = self::IntClassExtension|set#property(#t232, #t233) in #t233);
|
|
self::expect(n0, let final self::IntClass* #t235 = v in let final core::int* #t236 = self::IntClassExtension|get#property(#t235).{core::num::-}(1) in let final void #t237 = self::IntClassExtension|set#property(#t235, #t236) in #t236);
|
|
self::expect(n0, let final self::IntClass* #t238 = v in let final core::int* #t239 = self::IntClassExtension|get#property(#t238) in let final core::int* #t240 = let final core::int* #t241 = #t239.{core::num::+}(1) in let final void #t242 = self::IntClassExtension|set#property(#t238, #t241) in #t241 in #t239);
|
|
self::expect(n1, let final self::IntClass* #t243 = v in let final core::int* #t244 = self::IntClassExtension|get#property(#t243) in let final core::int* #t245 = let final core::int* #t246 = #t244.{core::num::-}(1) in let final void #t247 = self::IntClassExtension|set#property(#t243, #t246) in #t246 in #t244);
|
|
self::expect(n0, self::IntClassExtension|get#property(v));
|
|
self::expect(n0, self::IntClassExtension|get#property(v));
|
|
let final self::IntClass* #t248 = v in self::IntClassExtension|set#property(#t248, self::IntClassExtension|get#property(#t248).{core::num::+}(n1));
|
|
self::expect(n1, self::IntClassExtension|get#property(v));
|
|
let final self::IntClass* #t249 = v in self::IntClassExtension|set#property(#t249, self::IntClassExtension|get#property(#t249).{core::num::+}(n1));
|
|
self::expect(n2, self::IntClassExtension|get#property(v));
|
|
let final self::IntClass* #t250 = v in self::IntClassExtension|set#property(#t250, self::IntClassExtension|get#property(#t250).{core::num::-}(n2));
|
|
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::+}(n1));
|
|
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::-}(n1));
|
|
self::expect(n0, self::IntClassExtension|get#property(v));
|
|
let final self::IntClass* #t253 = v in let final core::int* #t254 = self::IntClassExtension|get#property(#t253).{core::num::+}(1) in let final void #t255 = self::IntClassExtension|set#property(#t253, #t254) in #t254;
|
|
self::expect(n1, self::IntClassExtension|get#property(v));
|
|
let final self::IntClass* #t256 = v in let final core::int* #t257 = self::IntClassExtension|get#property(#t256).{core::num::-}(1) in let final void #t258 = self::IntClassExtension|set#property(#t256, #t257) in #t257;
|
|
self::expect(n0, self::IntClassExtension|get#property(v));
|
|
let final self::IntClass* #t259 = v in self::IntClassExtension|set#property(#t259, self::IntClassExtension|get#property(#t259).{core::num::+}(1));
|
|
self::expect(n1, self::IntClassExtension|get#property(v));
|
|
let final self::IntClass* #t260 = v in self::IntClassExtension|set#property(#t260, self::IntClassExtension|get#property(#t260).{core::num::-}(1));
|
|
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* #t261 = v in #t261.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t261), v.{self::Class::==}(null));
|
|
self::expect(n1, let final self::Class* #t262 = v in #t262.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t263 = self::NumberExtension|+(self::ClassExtension|get#property(#t262), n1) in let final void #t264 = self::ClassExtension|set#property(#t262, #t263) in #t263, v.{self::Class::==}(null));
|
|
self::expect(n2, let final self::Class* #t265 = v in #t265.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t266 = self::NumberExtension|+(self::ClassExtension|get#property(#t265), n1) in let final void #t267 = self::ClassExtension|set#property(#t265, #t266) in #t266, v.{self::Class::==}(null));
|
|
self::expect(n0, let final self::Class* #t268 = v in #t268.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t269 = self::NumberExtension|-(self::ClassExtension|get#property(#t268), n2) in let final void #t270 = self::ClassExtension|set#property(#t268, #t269) in #t269, v.{self::Class::==}(null));
|
|
self::expect(n1, let final self::Class* #t271 = v in #t271.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t272 = self::NumberExtension|+(self::ClassExtension|get#property(#t271), n1) in let final void #t273 = self::ClassExtension|set#property(#t271, #t272) in #t272, v.{self::Class::==}(null));
|
|
self::expect(n0, let final self::Class* #t274 = v in #t274.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t275 = self::NumberExtension|-(self::ClassExtension|get#property(#t274), n1) in let final void #t276 = self::ClassExtension|set#property(#t274, #t275) in #t275, v.{self::Class::==}(null));
|
|
self::expect(n1, let final self::Class* #t277 = v in #t277.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t278 = self::NumberExtension|+(self::ClassExtension|get#property(#t277), 1) in let final void #t279 = self::ClassExtension|set#property(#t277, #t278) in #t278, v.{self::Class::==}(null));
|
|
self::expect(n0, let final self::Class* #t280 = v in #t280.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t281 = self::NumberExtension|-(self::ClassExtension|get#property(#t280), 1) in let final void #t282 = self::ClassExtension|set#property(#t280, #t281) in #t281, v.{self::Class::==}(null));
|
|
self::expect(n0, let final self::Class* #t283 = v in #t283.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t284 = self::ClassExtension|get#property(#t283) in let final self::Number* #t285 = let final self::Number* #t286 = self::NumberExtension|+(#t284, 1) in let final void #t287 = self::ClassExtension|set#property(#t283, #t286) in #t286 in #t284, v.{self::Class::==}(null));
|
|
self::expect(n1, let final self::Class* #t288 = v in #t288.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t289 = self::ClassExtension|get#property(#t288) in let final self::Number* #t290 = let final self::Number* #t291 = self::NumberExtension|-(#t289, 1) in let final void #t292 = self::ClassExtension|set#property(#t288, #t291) in #t291 in #t289, v.{self::Class::==}(null));
|
|
self::expect(n0, let final self::Class* #t293 = v in #t293.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t293), v.{self::Class::==}(null));
|
|
self::expect(n0, let final self::Class* #t294 = v in #t294.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t294), v.{self::Class::==}(null));
|
|
let final self::Class* #t295 = v in #t295.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|set#property(#t295, self::NumberExtension|+(self::ClassExtension|get#property(#t295), n1));
|
|
self::expect(n1, let final self::Class* #t296 = v in #t296.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t296), v.{self::Class::==}(null));
|
|
let final self::Class* #t297 = v in #t297.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|set#property(#t297, self::NumberExtension|+(self::ClassExtension|get#property(#t297), n1));
|
|
self::expect(n2, let final self::Class* #t298 = v in #t298.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t298), v.{self::Class::==}(null));
|
|
let final self::Class* #t299 = v in #t299.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|set#property(#t299, self::NumberExtension|-(self::ClassExtension|get#property(#t299), n2));
|
|
self::expect(n0, let final self::Class* #t300 = v in #t300.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t300), v.{self::Class::==}(null));
|
|
let final self::Class* #t301 = v in #t301.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|set#property(#t301, self::NumberExtension|+(self::ClassExtension|get#property(#t301), n1));
|
|
self::expect(n1, let final self::Class* #t302 = v in #t302.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t302), v.{self::Class::==}(null));
|
|
let final self::Class* #t303 = v in #t303.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|set#property(#t303, self::NumberExtension|-(self::ClassExtension|get#property(#t303), n1));
|
|
self::expect(n0, let final self::Class* #t304 = v in #t304.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t304), v.{self::Class::==}(null));
|
|
let final self::Class* #t305 = v in #t305.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t306 = self::NumberExtension|+(self::ClassExtension|get#property(#t305), 1) in let final void #t307 = self::ClassExtension|set#property(#t305, #t306) in #t306;
|
|
self::expect(n1, let final self::Class* #t308 = v in #t308.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t308), v.{self::Class::==}(null));
|
|
let final self::Class* #t309 = v in #t309.{self::Class::==}(null) ?{self::Number*} null : let final self::Number* #t310 = self::NumberExtension|-(self::ClassExtension|get#property(#t309), 1) in let final void #t311 = self::ClassExtension|set#property(#t309, #t310) in #t310;
|
|
self::expect(n0, let final self::Class* #t312 = v in #t312.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t312), v.{self::Class::==}(null));
|
|
let final self::Class* #t313 = v in #t313.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|set#property(#t313, self::NumberExtension|+(self::ClassExtension|get#property(#t313), 1));
|
|
self::expect(n1, let final self::Class* #t314 = v in #t314.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t314), v.{self::Class::==}(null));
|
|
let final self::Class* #t315 = v in #t315.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|set#property(#t315, self::NumberExtension|-(self::ClassExtension|get#property(#t315), 1));
|
|
self::expect(n0, let final self::Class* #t316 = v in #t316.{self::Class::==}(null) ?{self::Number*} null : self::ClassExtension|get#property(#t316), v.{self::Class::==}(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* #t317 = v in #t317.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t317), v.{self::IntClass::==}(null));
|
|
self::expect(n1, let final self::IntClass* #t318 = v in #t318.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t319 = self::IntClassExtension|get#property(#t318).{core::num::+}(n1) in let final void #t320 = self::IntClassExtension|set#property(#t318, #t319) in #t319, v.{self::IntClass::==}(null));
|
|
self::expect(n2, let final self::IntClass* #t321 = v in #t321.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t322 = self::IntClassExtension|get#property(#t321).{core::num::+}(n1) in let final void #t323 = self::IntClassExtension|set#property(#t321, #t322) in #t322, v.{self::IntClass::==}(null));
|
|
self::expect(n0, let final self::IntClass* #t324 = v in #t324.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t325 = self::IntClassExtension|get#property(#t324).{core::num::-}(n2) in let final void #t326 = self::IntClassExtension|set#property(#t324, #t325) in #t325, v.{self::IntClass::==}(null));
|
|
self::expect(n1, let final self::IntClass* #t327 = v in #t327.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t328 = self::IntClassExtension|get#property(#t327).{core::num::+}(n1) in let final void #t329 = self::IntClassExtension|set#property(#t327, #t328) in #t328, v.{self::IntClass::==}(null));
|
|
self::expect(n0, let final self::IntClass* #t330 = v in #t330.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t331 = self::IntClassExtension|get#property(#t330).{core::num::-}(n1) in let final void #t332 = self::IntClassExtension|set#property(#t330, #t331) in #t331, v.{self::IntClass::==}(null));
|
|
self::expect(n1, let final self::IntClass* #t333 = v in #t333.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t334 = self::IntClassExtension|get#property(#t333).{core::num::+}(1) in let final void #t335 = self::IntClassExtension|set#property(#t333, #t334) in #t334, v.{self::IntClass::==}(null));
|
|
self::expect(n0, let final self::IntClass* #t336 = v in #t336.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t337 = self::IntClassExtension|get#property(#t336).{core::num::-}(1) in let final void #t338 = self::IntClassExtension|set#property(#t336, #t337) in #t337, v.{self::IntClass::==}(null));
|
|
self::expect(n0, let final self::IntClass* #t339 = v in #t339.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t340 = self::IntClassExtension|get#property(#t339) in let final core::int* #t341 = let final core::int* #t342 = #t340.{core::num::+}(1) in let final void #t343 = self::IntClassExtension|set#property(#t339, #t342) in #t342 in #t340, v.{self::IntClass::==}(null));
|
|
self::expect(n1, let final self::IntClass* #t344 = v in #t344.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t345 = self::IntClassExtension|get#property(#t344) in let final core::int* #t346 = let final core::int* #t347 = #t345.{core::num::-}(1) in let final void #t348 = self::IntClassExtension|set#property(#t344, #t347) in #t347 in #t345, v.{self::IntClass::==}(null));
|
|
self::expect(n0, let final self::IntClass* #t349 = v in #t349.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t349), v.{self::IntClass::==}(null));
|
|
self::expect(n0, let final self::IntClass* #t350 = v in #t350.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t350), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t351 = v in #t351.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|set#property(#t351, self::IntClassExtension|get#property(#t351).{core::num::+}(n1));
|
|
self::expect(n1, let final self::IntClass* #t352 = v in #t352.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t352), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t353 = v in #t353.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|set#property(#t353, self::IntClassExtension|get#property(#t353).{core::num::+}(n1));
|
|
self::expect(n2, let final self::IntClass* #t354 = v in #t354.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t354), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t355 = v in #t355.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|set#property(#t355, self::IntClassExtension|get#property(#t355).{core::num::-}(n2));
|
|
self::expect(n0, let final self::IntClass* #t356 = v in #t356.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t356), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t357 = v in #t357.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|set#property(#t357, self::IntClassExtension|get#property(#t357).{core::num::+}(n1));
|
|
self::expect(n1, let final self::IntClass* #t358 = v in #t358.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t358), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t359 = v in #t359.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|set#property(#t359, self::IntClassExtension|get#property(#t359).{core::num::-}(n1));
|
|
self::expect(n0, let final self::IntClass* #t360 = v in #t360.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t360), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t361 = v in #t361.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t362 = self::IntClassExtension|get#property(#t361).{core::num::+}(1) in let final void #t363 = self::IntClassExtension|set#property(#t361, #t362) in #t362;
|
|
self::expect(n1, let final self::IntClass* #t364 = v in #t364.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t364), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t365 = v in #t365.{self::IntClass::==}(null) ?{core::int*} null : let final core::int* #t366 = self::IntClassExtension|get#property(#t365).{core::num::-}(1) in let final void #t367 = self::IntClassExtension|set#property(#t365, #t366) in #t366;
|
|
self::expect(n0, let final self::IntClass* #t368 = v in #t368.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t368), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t369 = v in #t369.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|set#property(#t369, self::IntClassExtension|get#property(#t369).{core::num::+}(1));
|
|
self::expect(n1, let final self::IntClass* #t370 = v in #t370.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t370), v.{self::IntClass::==}(null));
|
|
let final self::IntClass* #t371 = v in #t371.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|set#property(#t371, self::IntClassExtension|get#property(#t371).{core::num::-}(1));
|
|
self::expect(n0, let final self::IntClass* #t372 = v in #t372.{self::IntClass::==}(null) ?{core::int*} null : self::IntClassExtension|get#property(#t372), v.{self::IntClass::==}(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::==}(actual)) {
|
|
throw "Mismatch: expected=${expected}, actual=${actual}";
|
|
}
|
|
}
|
|
|
|
constants {
|
|
#C1 = false
|
|
}
|