| library test /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| abstract class Base<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object { |
| synthetic constructor •() → self::Base<self::Base::T%, self::Base::U%> |
| : super core::Object::•() |
| ; |
| operator [](core::String s) → self::Base::T% |
| return this.{self::Base::getValue}(s){(core::String) → self::Base::T%}; |
| operator []=(core::String s, covariant-by-class self::Base::U% v) → void |
| return this.{self::Base::setValue}(s, v){(core::String, self::Base::U%) → void}; |
| abstract method getValue(core::String s) → self::Base::T%; |
| abstract method setValue(core::String s, covariant-by-class self::Base::U% v) → void; |
| } |
| abstract class Base2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object { |
| synthetic constructor •() → self::Base2<self::Base2::T%, self::Base2::U%> |
| : super core::Object::•() |
| ; |
| operator [](core::String s) → self::Base2::T? |
| return this.{self::Base2::getValue}(s){(core::String) → self::Base2::T?}; |
| operator []=(core::String s, covariant-by-class self::Base2::U? v) → void |
| return this.{self::Base2::setValue}(s, v){(core::String, self::Base2::U?) → void}; |
| abstract method getValue(core::String s) → self::Base2::T?; |
| abstract method setValue(core::String s, covariant-by-class self::Base2::U? v) → void; |
| } |
| abstract class Test1a extends self::Base<core::int, core::int> { |
| synthetic constructor •() → self::Test1a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::int v1 = let final core::String #t1 = "x" in let final core::int #t2 = self::getInt() in let final void #t3 = super.{self::Base::[]=}(#t1, #t2) in #t2; |
| core::int v7 = let final core::String #t4 = "x" in let final core::int #t5 = super.{self::Base::[]}(#t4).{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5; |
| core::int v10 = let final core::String #t7 = "x" in let final core::int #t8 = super.{self::Base::[]}(#t7).{core::num::+}(1){(core::num) → core::int} in let final void #t9 = super.{self::Base::[]=}(#t7, #t8) in #t8; |
| core::int v11 = let final core::String #t10 = "x" in let final core::int #t11 = super.{self::Base::[]}(#t10) in let final void #t12 = super.{self::Base::[]=}(#t10, #t11.{core::num::+}(1){(core::num) → core::int}) in #t11; |
| } |
| } |
| abstract class Test1b extends self::Base2<core::int, core::int> { |
| synthetic constructor •() → self::Test1b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::int v4 = let final core::String #t13 = "x" in let final core::int? #t14 = super.{self::Base2::[]}(#t13) in #t14 == null ?{core::int} let final core::int #t15 = self::getInt() in let final void #t16 = super.{self::Base2::[]=}(#t13, #t15) in #t15 : #t14{core::int}; |
| } |
| } |
| abstract class Test2a extends self::Base<core::int, core::num> { |
| synthetic constructor •() → self::Test2a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::int v1 = let final core::String #t17 = "x" in let final core::int #t18 = self::getInt() in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18; |
| core::num v2 = let final core::String #t20 = "x" in let final core::num #t21 = self::getNum() in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21; |
| core::double v3 = let final core::String #t23 = "x" in let final core::double #t24 = self::getDouble() in let final void #t25 = super.{self::Base::[]=}(#t23, #t24) in #t24; |
| core::int v7 = let final core::String #t26 = "x" in let final core::int #t27 = super.{self::Base::[]}(#t26).{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t28 = super.{self::Base::[]=}(#t26, #t27) in #t27; |
| core::num v8 = let final core::String #t29 = "x" in let final core::num #t30 = super.{self::Base::[]}(#t29).{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t31 = super.{self::Base::[]=}(#t29, #t30) in #t30; |
| core::double v9 = let final core::String #t32 = "x" in let final core::double #t33 = super.{self::Base::[]}(#t32).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t34 = super.{self::Base::[]=}(#t32, #t33) in #t33; |
| core::int v10 = let final core::String #t35 = "x" in let final core::int #t36 = super.{self::Base::[]}(#t35).{core::num::+}(1){(core::num) → core::int} in let final void #t37 = super.{self::Base::[]=}(#t35, #t36) in #t36; |
| core::int v11 = let final core::String #t38 = "x" in let final core::int #t39 = super.{self::Base::[]}(#t38) in let final void #t40 = super.{self::Base::[]=}(#t38, #t39.{core::num::+}(1){(core::num) → core::int}) in #t39; |
| } |
| } |
| abstract class Test2b extends self::Base2<core::int, core::num> { |
| synthetic constructor •() → self::Test2b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::int v4 = let final core::String #t41 = "x" in let final core::int? #t42 = super.{self::Base2::[]}(#t41) in #t42 == null ?{core::int} let final core::int #t43 = self::getInt() in let final void #t44 = super.{self::Base2::[]=}(#t41, #t43) in #t43 : #t42{core::int}; |
| core::num v5 = let final core::String #t45 = "x" in let final core::int? #t46 = super.{self::Base2::[]}(#t45) in #t46 == null ?{core::num} let final core::num #t47 = self::getNum() in let final void #t48 = super.{self::Base2::[]=}(#t45, #t47) in #t47 : #t46{core::int}; |
| core::num v6 = let final core::String #t49 = "x" in let final core::int? #t50 = super.{self::Base2::[]}(#t49) in #t50 == null ?{core::num} let final core::double #t51 = self::getDouble() in let final void #t52 = super.{self::Base2::[]=}(#t49, #t51) in #t51 : #t50{core::int}; |
| } |
| } |
| abstract class Test3a extends self::Base<core::int, core::double> { |
| synthetic constructor •() → self::Test3a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::double v3 = let final core::String #t53 = "x" in let final core::double #t54 = self::getDouble() in let final void #t55 = super.{self::Base::[]=}(#t53, #t54) in #t54; |
| core::double v9 = let final core::String #t56 = "x" in let final core::double #t57 = super.{self::Base::[]}(#t56).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t58 = super.{self::Base::[]=}(#t56, #t57) in #t57; |
| core::double v10 = let final core::String #t59 = "x" in let final core::double #t60 = super.{self::Base::[]}(#t59).{core::num::+}(1.0){(core::num) → core::double} in let final void #t61 = super.{self::Base::[]=}(#t59, #t60) in #t60; |
| core::int v11 = let final core::String #t62 = "x" in let final core::int #t63 = super.{self::Base::[]}(#t62) in let final void #t64 = super.{self::Base::[]=}(#t62, #t63.{core::num::+}(1.0){(core::num) → core::double}) in #t63; |
| } |
| } |
| abstract class Test3b extends self::Base2<core::int, core::double> { |
| synthetic constructor •() → self::Test3b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::num v6 = let final core::String #t65 = "x" in let final core::int? #t66 = super.{self::Base2::[]}(#t65) in #t66 == null ?{core::num} let final core::double #t67 = self::getDouble() in let final void #t68 = super.{self::Base2::[]=}(#t65, #t67) in #t67 : #t66{core::int}; |
| } |
| } |
| abstract class Test4a extends self::Base<core::num, core::int> { |
| synthetic constructor •() → self::Test4a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::int v1 = let final core::String #t69 = "x" in let final core::int #t70 = self::getInt() in let final void #t71 = super.{self::Base::[]=}(#t69, #t70) in #t70; |
| } |
| } |
| abstract class Test4b extends self::Base2<core::num, core::int> { |
| synthetic constructor •() → self::Test4b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::num v4 = let final core::String #t72 = "x" in let final core::num? #t73 = super.{self::Base2::[]}(#t72) in #t73 == null ?{core::num} let final core::int #t74 = self::getInt() in let final void #t75 = super.{self::Base2::[]=}(#t72, #t74) in #t74 : #t73{core::num}; |
| } |
| } |
| abstract class Test5a extends self::Base<core::num, core::num> { |
| synthetic constructor •() → self::Test5a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::int v1 = let final core::String #t76 = "x" in let final core::int #t77 = self::getInt() in let final void #t78 = super.{self::Base::[]=}(#t76, #t77) in #t77; |
| core::num v2 = let final core::String #t79 = "x" in let final core::num #t80 = self::getNum() in let final void #t81 = super.{self::Base::[]=}(#t79, #t80) in #t80; |
| core::double v3 = let final core::String #t82 = "x" in let final core::double #t83 = self::getDouble() in let final void #t84 = super.{self::Base::[]=}(#t82, #t83) in #t83; |
| core::num v7 = let final core::String #t85 = "x" in let final core::num #t86 = super.{self::Base::[]}(#t85).{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t87 = super.{self::Base::[]=}(#t85, #t86) in #t86; |
| core::num v8 = let final core::String #t88 = "x" in let final core::num #t89 = super.{self::Base::[]}(#t88).{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t90 = super.{self::Base::[]=}(#t88, #t89) in #t89; |
| core::double v9 = let final core::String #t91 = "x" in let final core::double #t92 = super.{self::Base::[]}(#t91).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t93 = super.{self::Base::[]=}(#t91, #t92) in #t92; |
| core::num v10 = let final core::String #t94 = "x" in let final core::num #t95 = super.{self::Base::[]}(#t94).{core::num::+}(1){(core::num) → core::num} in let final void #t96 = super.{self::Base::[]=}(#t94, #t95) in #t95; |
| core::num v11 = let final core::String #t97 = "x" in let final core::num #t98 = super.{self::Base::[]}(#t97) in let final void #t99 = super.{self::Base::[]=}(#t97, #t98.{core::num::+}(1){(core::num) → core::num}) in #t98; |
| } |
| } |
| abstract class Test5b extends self::Base2<core::num, core::num> { |
| synthetic constructor •() → self::Test5b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::num v4 = let final core::String #t100 = "x" in let final core::num? #t101 = super.{self::Base2::[]}(#t100) in #t101 == null ?{core::num} let final core::int #t102 = self::getInt() in let final void #t103 = super.{self::Base2::[]=}(#t100, #t102) in #t102 : #t101{core::num}; |
| core::num v5 = let final core::String #t104 = "x" in let final core::num? #t105 = super.{self::Base2::[]}(#t104) in #t105 == null ?{core::num} let final core::num #t106 = self::getNum() in let final void #t107 = super.{self::Base2::[]=}(#t104, #t106) in #t106 : #t105{core::num}; |
| core::num v6 = let final core::String #t108 = "x" in let final core::num? #t109 = super.{self::Base2::[]}(#t108) in #t109 == null ?{core::num} let final core::double #t110 = self::getDouble() in let final void #t111 = super.{self::Base2::[]=}(#t108, #t110) in #t110 : #t109{core::num}; |
| } |
| } |
| abstract class Test6a extends self::Base<core::num, core::double> { |
| synthetic constructor •() → self::Test6a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::double v3 = let final core::String #t112 = "x" in let final core::double #t113 = self::getDouble() in let final void #t114 = super.{self::Base::[]=}(#t112, #t113) in #t113; |
| core::double v9 = let final core::String #t115 = "x" in let final core::double #t116 = super.{self::Base::[]}(#t115).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t117 = super.{self::Base::[]=}(#t115, #t116) in #t116; |
| core::double v10 = let final core::String #t118 = "x" in let final core::double #t119 = super.{self::Base::[]}(#t118).{core::num::+}(1.0){(core::num) → core::double} in let final void #t120 = super.{self::Base::[]=}(#t118, #t119) in #t119; |
| core::num v11 = let final core::String #t121 = "x" in let final core::num #t122 = super.{self::Base::[]}(#t121) in let final void #t123 = super.{self::Base::[]=}(#t121, #t122.{core::num::+}(1.0){(core::num) → core::double}) in #t122; |
| } |
| } |
| abstract class Test6b extends self::Base2<core::num, core::double> { |
| synthetic constructor •() → self::Test6b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::num v6 = let final core::String #t124 = "x" in let final core::num? #t125 = super.{self::Base2::[]}(#t124) in #t125 == null ?{core::num} let final core::double #t126 = self::getDouble() in let final void #t127 = super.{self::Base2::[]=}(#t124, #t126) in #t126 : #t125{core::num}; |
| } |
| } |
| abstract class Test7a extends self::Base<core::double, core::int> { |
| synthetic constructor •() → self::Test7a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::int v1 = let final core::String #t128 = "x" in let final core::int #t129 = self::getInt() in let final void #t130 = super.{self::Base::[]=}(#t128, #t129) in #t129; |
| } |
| } |
| abstract class Test7b extends self::Base2<core::double, core::int> { |
| synthetic constructor •() → self::Test7b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::num v4 = let final core::String #t131 = "x" in let final core::double? #t132 = super.{self::Base2::[]}(#t131) in #t132 == null ?{core::num} let final core::int #t133 = self::getInt() in let final void #t134 = super.{self::Base2::[]=}(#t131, #t133) in #t133 : #t132{core::double}; |
| } |
| } |
| abstract class Test8a extends self::Base<core::double, core::num> { |
| synthetic constructor •() → self::Test8a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::int v1 = let final core::String #t135 = "x" in let final core::int #t136 = self::getInt() in let final void #t137 = super.{self::Base::[]=}(#t135, #t136) in #t136; |
| core::num v2 = let final core::String #t138 = "x" in let final core::num #t139 = self::getNum() in let final void #t140 = super.{self::Base::[]=}(#t138, #t139) in #t139; |
| core::double v3 = let final core::String #t141 = "x" in let final core::double #t142 = self::getDouble() in let final void #t143 = super.{self::Base::[]=}(#t141, #t142) in #t142; |
| core::double v7 = let final core::String #t144 = "x" in let final core::double #t145 = super.{self::Base::[]}(#t144).{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t146 = super.{self::Base::[]=}(#t144, #t145) in #t145; |
| core::double v8 = let final core::String #t147 = "x" in let final core::double #t148 = super.{self::Base::[]}(#t147).{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t149 = super.{self::Base::[]=}(#t147, #t148) in #t148; |
| core::double v9 = let final core::String #t150 = "x" in let final core::double #t151 = super.{self::Base::[]}(#t150).{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t152 = super.{self::Base::[]=}(#t150, #t151) in #t151; |
| core::double v10 = let final core::String #t153 = "x" in let final core::double #t154 = super.{self::Base::[]}(#t153).{core::double::+}(1){(core::num) → core::double} in let final void #t155 = super.{self::Base::[]=}(#t153, #t154) in #t154; |
| core::double v11 = let final core::String #t156 = "x" in let final core::double #t157 = super.{self::Base::[]}(#t156) in let final void #t158 = super.{self::Base::[]=}(#t156, #t157.{core::double::+}(1){(core::num) → core::double}) in #t157; |
| } |
| } |
| abstract class Test8b extends self::Base2<core::double, core::num> { |
| synthetic constructor •() → self::Test8b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::num v4 = let final core::String #t159 = "x" in let final core::double? #t160 = super.{self::Base2::[]}(#t159) in #t160 == null ?{core::num} let final core::int #t161 = self::getInt() in let final void #t162 = super.{self::Base2::[]=}(#t159, #t161) in #t161 : #t160{core::double}; |
| core::num v5 = let final core::String #t163 = "x" in let final core::double? #t164 = super.{self::Base2::[]}(#t163) in #t164 == null ?{core::num} let final core::num #t165 = self::getNum() in let final void #t166 = super.{self::Base2::[]=}(#t163, #t165) in #t165 : #t164{core::double}; |
| core::double v6 = let final core::String #t167 = "x" in let final core::double? #t168 = super.{self::Base2::[]}(#t167) in #t168 == null ?{core::double} let final core::double #t169 = self::getDouble() in let final void #t170 = super.{self::Base2::[]=}(#t167, #t169) in #t169 : #t168{core::double}; |
| } |
| } |
| abstract class Test9a extends self::Base<core::double, core::double> { |
| synthetic constructor •() → self::Test9a |
| : super self::Base::•() |
| ; |
| method test() → void { |
| core::double v3 = let final core::String #t171 = "x" in let final core::double #t172 = self::getDouble() in let final void #t173 = super.{self::Base::[]=}(#t171, #t172) in #t172; |
| core::double v8 = let final core::String #t174 = "x" in let final core::double #t175 = super.{self::Base::[]}(#t174).{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t176 = super.{self::Base::[]=}(#t174, #t175) in #t175; |
| core::double v9 = let final core::String #t177 = "x" in let final core::double #t178 = super.{self::Base::[]}(#t177).{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t179 = super.{self::Base::[]=}(#t177, #t178) in #t178; |
| core::double v10 = let final core::String #t180 = "x" in let final core::double #t181 = super.{self::Base::[]}(#t180).{core::double::+}(1){(core::num) → core::double} in let final void #t182 = super.{self::Base::[]=}(#t180, #t181) in #t181; |
| core::double v11 = let final core::String #t183 = "x" in let final core::double #t184 = super.{self::Base::[]}(#t183) in let final void #t185 = super.{self::Base::[]=}(#t183, #t184.{core::double::+}(1){(core::num) → core::double}) in #t184; |
| } |
| } |
| abstract class Test9b extends self::Base2<core::double, core::double> { |
| synthetic constructor •() → self::Test9b |
| : super self::Base2::•() |
| ; |
| method test() → void { |
| core::double v6 = let final core::String #t186 = "x" in let final core::double? #t187 = super.{self::Base2::[]}(#t186) in #t187 == null ?{core::double} let final core::double #t188 = self::getDouble() in let final void #t189 = super.{self::Base2::[]=}(#t186, #t188) in #t188 : #t187{core::double}; |
| } |
| } |
| static method getInt() → core::int |
| return 0; |
| static method getNum() → core::num |
| return 0; |
| static method getDouble() → core::double |
| return 0.0; |
| static method main() → dynamic {} |