blob: 89099d1631571a0415908afdcdc2117530e031a4 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Class extends core::Object {
field core::Function field1a = #C1;
field () core::int field1b = #C1;
field (core::int) core::int field2 = #C2;
field (core::int, core::int) core::int field3 = #C3;
field (core::int, [core::int]) core::int field4 = #C4;
field ([core::int, core::int]) core::int field5 = #C5;
field (core::int, {b: core::int}) core::int field6 = #C6;
field ({a: core::int, b: core::int}) core::int field7 = #C7;
synthetic constructor •() self::Class
: super core::Object::•()
;
get getter1a() core::Function
return #C1;
get getter1b() () core::int
return #C1;
get getter2() (core::int) core::int
return #C2;
get getter3() (core::int, core::int) core::int
return #C3;
get getter4() (core::int, [core::int]) core::int
return #C4;
get getter5() ([core::int, core::int]) core::int
return #C5;
get getter6() (core::int, {b: core::int}) core::int
return #C6;
get getter7() ({a: core::int, b: core::int}) core::int
return #C7;
}
class Subclass extends self::Class {
synthetic constructor •() self::Subclass
: super self::Class::•()
;
get field1a() core::Function {
self::enableRead = false;
return #C1;
}
get field1b() () core::int {
self::enableRead = false;
return #C1;
}
get field2() (core::int) core::int {
self::enableRead = false;
return #C2;
}
get field3() (core::int, core::int) core::int {
self::enableRead = false;
return #C3;
}
get field4() (core::int, [core::int]) core::int {
self::enableRead = false;
return #C4;
}
get field5() ([core::int, core::int]) core::int {
self::enableRead = false;
return #C5;
}
get field6() (core::int, {b: core::int}) core::int {
self::enableRead = false;
return #C6;
}
get field7() ({a: core::int, b: core::int}) core::int {
self::enableRead = false;
return #C7;
}
get getter1a() core::Function {
self::enableRead = false;
return #C1;
}
get getter1b() () core::int {
self::enableRead = false;
return #C1;
}
get getter2() (core::int) core::int {
self::enableRead = false;
return #C2;
}
get getter3() (core::int, core::int) core::int {
self::enableRead = false;
return #C3;
}
get getter4() (core::int, [core::int]) core::int {
self::enableRead = false;
return #C4;
}
get getter5() ([core::int, core::int]) core::int {
self::enableRead = false;
return #C5;
}
get getter6() (core::int, {b: core::int}) core::int {
self::enableRead = false;
return #C6;
}
get getter7() ({a: core::int, b: core::int}) core::int {
self::enableRead = false;
return #C7;
}
}
static field core::bool enableRead = true;
static method read(core::int value) core::int
return self::enableRead ?{core::int} value : 1.{core::int::unary-}(){() core::int};
static method method1() core::int
return 0;
static method method2(core::int a) core::int
return a.{core::int::unary-}(){() core::int};
static method method3(core::int a, core::int b) core::int
return a.{core::num::-}(b){(core::num) core::int};
static method method4(core::int a, [core::int b = #C8]) → core::int
return a.{core::num::-}(b){(core::num) core::int};
static method method5([core::int a = #C8, core::int b = #C8]) → core::int
return a.{core::num::-}(b){(core::num) core::int};
static method method6(core::int a, {core::int b = #C8}) → core::int
return a.{core::num::-}(b){(core::num) core::int};
static method method7({core::int a = #C8, core::int b = #C8}) → core::int
return a.{core::num::-}(b){(core::num) core::int};
static method main() dynamic {
self::callField(new self::Class::•());
self::callGetter(new self::Class::•());
self::callField(new self::Subclass::•());
self::callGetter(new self::Subclass::•());
}
static method callField(self::Class c) dynamic {
self::expect(0, c.{self::Class::field1a}{core::Function}());
self::expect(0, c.{self::Class::field1b}{() core::int}(){() core::int});
self::expect(42.{core::int::unary-}(){() core::int}, let final self::Class #t1 = c in let final core::int #t2 = self::read(42) in #t1.{self::Class::field2}{(core::int) → core::int}(#t2){(core::int) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t3 = c in let final core::int #t4 = self::read(12) in let final core::int #t5 = self::read(23) in #t3.{self::Class::field3}{(core::int, core::int) → core::int}(#t4, #t5){(core::int, core::int) → core::int});
self::expect(12, let final self::Class #t6 = c in let final core::int #t7 = self::read(12) in #t6.{self::Class::field4}{(core::int, [core::int]) → core::int}(#t7){(core::int, [core::int]) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t8 = c in let final core::int #t9 = self::read(12) in let final core::int #t10 = self::read(23) in #t8.{self::Class::field4}{(core::int, [core::int]) → core::int}(#t9, #t10){(core::int, [core::int]) → core::int});
self::expect(0, c.{self::Class::field5}{([core::int, core::int]) core::int}(){([core::int, core::int]) core::int});
self::expect(12, let final self::Class #t11 = c in let final core::int #t12 = self::read(12) in #t11.{self::Class::field5}{([core::int, core::int]) → core::int}(#t12){([core::int, core::int]) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t13 = c in let final core::int #t14 = self::read(12) in let final core::int #t15 = self::read(23) in #t13.{self::Class::field5}{([core::int, core::int]) → core::int}(#t14, #t15){([core::int, core::int]) → core::int});
self::expect(12, let final self::Class #t16 = c in let final core::int #t17 = self::read(12) in #t16.{self::Class::field6}{(core::int, {b: core::int}) → core::int}(#t17){(core::int, {b: core::int}) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t18 = c in let final core::int #t19 = self::read(12) in let final core::int #t20 = self::read(23) in #t18.{self::Class::field6}{(core::int, {b: core::int}) → core::int}(#t19, b: #t20){(core::int, {b: core::int}) → core::int});
self::expect(0, c.{self::Class::field7}{({a: core::int, b: core::int}) core::int}(){({a: core::int, b: core::int}) core::int});
self::expect(12, let final self::Class #t21 = c in let final core::int #t22 = self::read(12) in #t21.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(a: #t22){({a: core::int, b: core::int}) → core::int});
self::expect(23.{core::int::unary-}(){() core::int}, let final self::Class #t23 = c in let final core::int #t24 = self::read(23) in #t23.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(b: #t24){({a: core::int, b: core::int}) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t25 = c in let final core::int #t26 = self::read(12) in let final core::int #t27 = self::read(23) in #t25.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(a: #t26, b: #t27){({a: core::int, b: core::int}) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t28 = c in let final core::int #t29 = self::read(23) in let final core::int #t30 = self::read(12) in #t28.{self::Class::field7}{({a: core::int, b: core::int}) → core::int}(b: #t29, a: #t30){({a: core::int, b: core::int}) → core::int});
}
static method callGetter(self::Class c) dynamic {
self::expect(0, c.{self::Class::getter1a}{core::Function}());
self::expect(0, c.{self::Class::getter1b}{() core::int}(){() core::int});
self::expect(42.{core::int::unary-}(){() core::int}, let final self::Class #t31 = c in let final core::int #t32 = self::read(42) in #t31.{self::Class::getter2}{(core::int) → core::int}(#t32){(core::int) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t33 = c in let final core::int #t34 = self::read(12) in let final core::int #t35 = self::read(23) in #t33.{self::Class::getter3}{(core::int, core::int) → core::int}(#t34, #t35){(core::int, core::int) → core::int});
self::expect(12, let final self::Class #t36 = c in let final core::int #t37 = self::read(12) in #t36.{self::Class::getter4}{(core::int, [core::int]) → core::int}(#t37){(core::int, [core::int]) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t38 = c in let final core::int #t39 = self::read(12) in let final core::int #t40 = self::read(23) in #t38.{self::Class::getter4}{(core::int, [core::int]) → core::int}(#t39, #t40){(core::int, [core::int]) → core::int});
self::expect(0, c.{self::Class::getter5}{([core::int, core::int]) core::int}(){([core::int, core::int]) core::int});
self::expect(12, let final self::Class #t41 = c in let final core::int #t42 = self::read(12) in #t41.{self::Class::getter5}{([core::int, core::int]) → core::int}(#t42){([core::int, core::int]) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t43 = c in let final core::int #t44 = self::read(12) in let final core::int #t45 = self::read(23) in #t43.{self::Class::getter5}{([core::int, core::int]) → core::int}(#t44, #t45){([core::int, core::int]) → core::int});
self::expect(12, let final self::Class #t46 = c in let final core::int #t47 = self::read(12) in #t46.{self::Class::getter6}{(core::int, {b: core::int}) → core::int}(#t47){(core::int, {b: core::int}) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t48 = c in let final core::int #t49 = self::read(12) in let final core::int #t50 = self::read(23) in #t48.{self::Class::getter6}{(core::int, {b: core::int}) → core::int}(#t49, b: #t50){(core::int, {b: core::int}) → core::int});
self::expect(0, c.{self::Class::getter7}{({a: core::int, b: core::int}) core::int}(){({a: core::int, b: core::int}) core::int});
self::expect(12, let final self::Class #t51 = c in let final core::int #t52 = self::read(12) in #t51.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(a: #t52){({a: core::int, b: core::int}) → core::int});
self::expect(23.{core::int::unary-}(){() core::int}, let final self::Class #t53 = c in let final core::int #t54 = self::read(23) in #t53.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(b: #t54){({a: core::int, b: core::int}) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t55 = c in let final core::int #t56 = self::read(12) in let final core::int #t57 = self::read(23) in #t55.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(a: #t56, b: #t57){({a: core::int, b: core::int}) → core::int});
self::expect(11.{core::int::unary-}(){() core::int}, let final self::Class #t58 = c in let final core::int #t59 = self::read(23) in let final core::int #t60 = self::read(12) in #t58.{self::Class::getter7}{({a: core::int, b: core::int}) → core::int}(b: #t59, a: #t60){({a: core::int, b: core::int}) → core::int});
}
static method expect(dynamic expected, dynamic actual) dynamic {
self::enableRead = true;
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected ${expected}, ${actual}";
}
constants {
#C1 = static-tearoff self::method1
#C2 = static-tearoff self::method2
#C3 = static-tearoff self::method3
#C4 = static-tearoff self::method4
#C5 = static-tearoff self::method5
#C6 = static-tearoff self::method6
#C7 = static-tearoff self::method7
#C8 = 0
}