| library test /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| class Index extends core::Object { |
| synthetic constructor •() → self::Index |
| : super core::Object::•() |
| ; |
| } |
| class A extends core::Object { |
| synthetic constructor •() → self::A |
| : super core::Object::•() |
| ; |
| operator +(self::F v) → self::C |
| return throw ""; |
| operator -(core::int i) → self::C |
| return throw ""; |
| } |
| class B extends self::A { |
| synthetic constructor •() → self::B |
| : super self::A::•() |
| ; |
| operator +(self::E v) → self::D |
| return throw ""; |
| operator -(core::int i) → self::D |
| return throw ""; |
| } |
| class C extends self::B { |
| synthetic constructor •() → self::C |
| : super self::B::•() |
| ; |
| } |
| class D extends self::C { |
| synthetic constructor •() → self::D |
| : super self::C::•() |
| ; |
| } |
| class E extends self::D { |
| synthetic constructor •() → self::E |
| : super self::D::•() |
| ; |
| } |
| class F extends self::E { |
| synthetic constructor •() → self::F |
| : super self::E::•() |
| ; |
| } |
| class Test extends core::Object { |
| synthetic constructor •() → self::Test |
| : super core::Object::•() |
| ; |
| operator [](self::Index i) → self::B |
| return throw ""; |
| operator []=(self::Index i, self::A v) → void {} |
| method test() → void { |
| self::Test t = self::f<self::Test>(); |
| t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::A>()){(self::Index, self::A) → void}; |
| let final self::Test #t1 = t in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test::[]=}(#t2, #t1.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::+}(self::f<self::E>()){(self::E) → self::D}){(self::Index, self::A) → void}; |
| let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in let final self::D #t5 = #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D} in let final void #t6 = #t3.{self::Test::[]=}(#t4, #t5){(self::Index, self::A) → void} in #t5; |
| let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D}){(self::Index, self::A) → void}; |
| self::A v1 = let final self::Test #t9 = t in let final self::Index #t10 = self::f<self::Index>() in let final self::A #t11 = self::f<self::A>() in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index, self::A) → void} in #t11; |
| self::D v3 = let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in let final self::D #t15 = #t13.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::+}(self::f<self::E>()){(self::E) → self::D} in let final void #t16 = #t13.{self::Test::[]=}(#t14, #t15){(self::Index, self::A) → void} in #t15; |
| self::D v4 = let final self::Test #t17 = t in let final self::Index #t18 = self::f<self::Index>() in let final self::D #t19 = #t17.{self::Test::[]}(#t18){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D} in let final void #t20 = #t17.{self::Test::[]=}(#t18, #t19){(self::Index, self::A) → void} in #t19; |
| self::B v5 = let final self::Test #t21 = t in let final self::Index #t22 = self::f<self::Index>() in let final self::B #t23 = #t21.{self::Test::[]}(#t22){(self::Index) → self::B} in let final void #t24 = #t21.{self::Test::[]=}(#t22, #t23.{self::B::-}(1){(core::int) → self::D}){(self::Index, self::A) → void} in #t23; |
| } |
| } |
| class Test2 extends core::Object { |
| synthetic constructor •() → self::Test2 |
| : super core::Object::•() |
| ; |
| operator [](self::Index i) → self::B? |
| return throw ""; |
| operator []=(self::Index i, self::A? v) → void {} |
| method test() → void { |
| self::Test2 t = self::f<self::Test2>(); |
| let final self::Test2 #t25 = t in let final self::Index #t26 = self::f<self::Index>() in #t25.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::A?} #t25.{self::Test2::[]=}(#t26, self::f<self::A?>()){(self::Index, self::A?) → void} : null; |
| self::A? v2 = let final self::Test2 #t27 = t in let final self::Index #t28 = self::f<self::Index>() in let final self::B? #t29 = #t27.{self::Test2::[]}(#t28){(self::Index) → self::B?} in #t29 == null ?{self::A?} let final self::A? #t30 = self::f<self::A?>() in let final void #t31 = #t27.{self::Test2::[]=}(#t28, #t30){(self::Index, self::A?) → void} in #t30 : #t29{self::B}; |
| } |
| } |
| static method f<T extends core::Object? = dynamic>() → self::f::T% |
| return throw ""; |
| static method main() → dynamic {} |