blob: b9d7b32ed6412eb431c74d5d1aa87c2be308792a [file] [log] [blame]
------------ A. ------------
%this = _Parameter #0 [_T (#lib::A)+]
t1 = _Call direct [dart.core::Object.] (%this)
RESULT: _T {}?
------------ A.foo1 ------------
%this = _Parameter #0 [_T (#lib::A)+]
%x = _Parameter #1 [_T (dart.core::Object)+?]
RESULT: _T {}?
------------ B. ------------
%this = _Parameter #0 [_T (#lib::B)+]
t1 = _Call direct [dart.core::Object.] (%this)
RESULT: _T {}?
------------ B.bar1 ------------
%this = _Parameter #0 [_T (#lib::B)+]
%arg = _Parameter #1 [_T (dart.core::Object)+?]
RESULT: _T {}?
------------ B.bar2 ------------
%this = _Parameter #0 [_T (#lib::B)+]
RESULT: _T {}?
------------ B.bar3 ------------
%this = _Parameter #0 [_T (#lib::B)+]
%y = _Parameter #1 [_T (dart.core::int)+?]
RESULT: _T {}?
------------ B.bar4 ------------
%this = _Parameter #0 [_T (#lib::B)+]
RESULT: _T {}?
------------ C. ------------
%this = _Parameter #0 [_T (#lib::C)+]
t1 = _Call direct [dart.core::Object.] (%this)
RESULT: _T {}?
------------ 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, t5)
t7 = _Narrow (%aa to _T ANY)
t8* = _Call get [#lib::A.foo2] (t7)
t9 = _TypeCheck (t8 against dart.core::int*) (for aa.{#lib::A.foo2} as dart.core::int*)
t10 = _Call set [#lib::A.foo3] (t7, t9)
t11* = _Call get [#lib::A.foo1] (t7)
t12* = _Call get [#lib::A.foo2] (t7)
t13* = _Call dynamic [call] (t12, %a2, %a3, t11)
RESULT: t13
------------ 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, t5)
t7 = _Narrow (%aa to _T ANY)
t8* = _Call dynamic get [foo2] (t7)
t9 = _Call dynamic set [foo3] (t7, t8)
t10* = _Call dynamic get [foo1] (t7)
t11* = _Call dynamic [foo2] (t7, %a2, %a3, t10)
RESULT: t11
------------ D. ------------
%this = _Parameter #0 [_T (#lib::D)+]
t1 = _Call direct [#lib::B.] (%this)
RESULT: _T {}?
------------ 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)
RESULT: t10
------------ main ------------
RESULT: _T {}?