| ------------ #lib::A:: ------------ |
| %this = _Parameter #0 [_T (#lib::A)+] |
| t1 = _Call direct [dart.core::Object::] (%this) |
| RESULT: _T {}? |
| ------------ #lib::A::foo1 ------------ |
| %this = _Parameter #0 [_T (#lib::A)+] |
| %x = _Parameter #1 [_T (dart.core::Object)+?] |
| RESULT: _T {}? |
| ------------ #lib::B:: ------------ |
| %this = _Parameter #0 [_T (#lib::B)+] |
| t1 = _Call direct [dart.core::Object::] (%this) |
| RESULT: _T {}? |
| ------------ #lib::B::bar1 ------------ |
| %this = _Parameter #0 [_T (#lib::B)+] |
| %arg = _Parameter #1 [_T (dart.core::Object)+?] |
| RESULT: _T {}? |
| ------------ #lib::B::bar2 ------------ |
| %this = _Parameter #0 [_T (#lib::B)+] |
| RESULT: _T {}? |
| ------------ #lib::B::bar3 ------------ |
| %this = _Parameter #0 [_T (#lib::B)+] |
| %y = _Parameter #1 [_T (dart.core::int)+?] |
| RESULT: _T {}? |
| ------------ #lib::B::bar4 ------------ |
| %this = _Parameter #0 [_T (#lib::B)+] |
| RESULT: _T {}? |
| ------------ #lib::C:: ------------ |
| %this = _Parameter #0 [_T (#lib::C)+] |
| t1 = _Call direct [dart.core::Object::] (%this) |
| RESULT: _T {}? |
| ------------ #lib::C::interfaceCalls ------------ |
| %this = _Parameter #0 [_T (#lib::C)+] |
| %aa = _Parameter #1 [_T (#lib::A)+?] |
| %a2 = _Parameter #2 [_T (dart.core::Object)+?] |
| %a3 = _Parameter #3 [_T (dart.core::Object)+?] |
| %a4 = _Parameter #4 [_T (dart.core::Object)+?] |
| t5 = _Call direct [#lib::B::] (_T (#lib::B)) |
| t6 = _Call [#lib::A::foo1] (%aa, _T (#lib::B)) |
| t7* = _Call get [#lib::A::foo2] (%aa) |
| t8 = _Narrow (t7 to _T (dart.core::int)+?) |
| t9 = _Call set [#lib::A::foo3] (%aa, t8) |
| t10* = _Call get [#lib::A::foo1] (%aa) |
| t11* = _Call get [#lib::A::foo2] (%aa) |
| t12 = _Call dynamic [call] (t11, %a2, %a3, t10) |
| a4 = _Join [dart.core::Object] (%a4, _T ANY?) |
| RESULT: a4 |
| ------------ #lib::C::dynamicCalls ------------ |
| %this = _Parameter #0 [_T (#lib::C)+] |
| %aa = _Parameter #1 [_T ANY?] |
| %a2 = _Parameter #2 [_T (dart.core::Object)+?] |
| %a3 = _Parameter #3 [_T (dart.core::Object)+?] |
| %a4 = _Parameter #4 [_T (dart.core::Object)+?] |
| t5 = _Call direct [#lib::B::] (_T (#lib::B)) |
| t6 = _Call dynamic [foo1] (%aa, _T (#lib::B)) |
| t7* = _Call dynamic get [foo2] (%aa) |
| t8 = _Call dynamic set [foo3] (%aa, t7) |
| t9* = _Call dynamic get [foo1] (%aa) |
| t10* = _Call dynamic [foo2] (%aa, %a2, %a3, t9) |
| a4 = _Join [dart.core::Object] (%a4, t10) |
| RESULT: a4 |
| ------------ #lib::D:: ------------ |
| %this = _Parameter #0 [_T (#lib::D)+] |
| t1 = _Call direct [#lib::B::] (%this) |
| RESULT: _T {}? |
| ------------ #lib::D::superCalls ------------ |
| %this = _Parameter #0 [_T (#lib::D)+] |
| %a1 = _Parameter #1 [_T (dart.core::Object)+?] |
| %a2 = _Parameter #2 [_T (dart.core::Object)+?] |
| %a3 = _Parameter #3 [_T (dart.core::Object)+?] |
| %a4 = _Parameter #4 [_T (dart.core::Object)+?] |
| t5 = _Call direct [#lib::B::bar1] (%this, %a1) |
| t6* = _Call direct get [#lib::B::bar4] (%this) |
| t7 = _Call direct set [#lib::B::bar3] (%this, t6) |
| t8* = _Call direct get [#lib::B::bar2] (%this) |
| t9* = _Call direct get [#lib::B::bar1] (%this) |
| t10* = _Call dynamic [call] (t8, %a2, %a3, t9) |
| a4 = _Join [dart.core::Object] (%a4, t10) |
| RESULT: a4 |
| ------------ #lib::main ------------ |
| |
| RESULT: _T {}? |