blob: dcdc1f2891b6b37100e4bebcd7780617d5e07346 [file] [log] [blame]
------------ #lib::C:: ------------
%this = _Parameter #0 [_T (#lib::C<dynamic>)+]
t1 = _Call direct [dart.core::Object::] (%this)
RESULT: _T {}?
------------ #lib::C::foo ------------
%this = _Parameter #0 [_T (#lib::C<dynamic>)+]
t1 = _Extract (%this[#lib::C/0])
t2 = _CreateConcreteType (#lib::D @ (t1))
t3 = _Call direct [#lib::D::] (t2)
RESULT: t2
------------ #lib::C::id1 ------------
%this = _Parameter #0 [_T (#lib::C<dynamic>)+]
%x = _Parameter #1
t2 = _Extract (%this[#lib::C/0])
t3 = _TypeCheck (%x against t2) (for parameter x)
RESULT: t3
------------ #lib::C::id2 ------------
%this = _Parameter #0 [_T (#lib::C<dynamic>)+]
%x = _Parameter #1
t2 = _Extract (%this[#lib::C/0])
t3 = _TypeCheck (%x against t2) (for parameter x)
RESULT: t3
------------ #lib::D:: ------------
%this = _Parameter #0 [_T (#lib::D<dynamic>)+]
t1 = _Call direct [dart.core::Object::] (%this)
RESULT: _T {}?
------------ #lib::E:: ------------
%this = _Parameter #0 [_T (#lib::E<dynamic, dynamic>)+]
t1 = _Call direct [#lib::C::] (%this)
RESULT: _T {}?
------------ #lib::E::foo ------------
%this = _Parameter #0 [_T (#lib::E<dynamic, dynamic>)+]
t1* = _Call direct [#lib::C::foo] (%this)
RESULT: t1
------------ #lib::E::bar ------------
%this = _Parameter #0 [_T (#lib::E<dynamic, dynamic>)+]
t1 = _Extract (%this[#lib::E/0])
t2 = _CreateConcreteType (#lib::D @ (t1))
t3 = _Call direct [#lib::D::] (t2)
RESULT: t2
------------ #lib::E::baz ------------
%this = _Parameter #0 [_T (#lib::E<dynamic, dynamic>)+]
t1 = _Extract (%this[#lib::E/1])
t2 = _CreateConcreteType (#lib::D @ (t1))
t3 = _Call direct [#lib::D::] (t2)
RESULT: t2
------------ #lib::X:: ------------
%this = _Parameter #0 [_T (#lib::X)+]
t1 = _Call direct [dart.core::Object::] (%this)
RESULT: _T {}?
------------ #lib::Y:: ------------
%this = _Parameter #0 [_T (#lib::Y)+]
t1 = _Call direct [#lib::X::] (%this)
RESULT: _T {}?
------------ #lib::Z:: ------------
%this = _Parameter #0 [_T (#lib::Z)+]
t1 = _Call direct [#lib::X::] (%this)
RESULT: _T {}?
------------ #lib::I:: ------------
%this = _Parameter #0 [_T (#lib::I<dynamic>)+]
t1 = _Call direct [dart.core::Object::] (%this)
RESULT: _T {}?
------------ #lib::J:: ------------
%this = _Parameter #0 [_T (#lib::J)+]
t1 = _Call direct [#lib::I::] (%this)
RESULT: _T {}?
------------ #lib::K:: ------------
%this = _Parameter #0 [_T (#lib::K<dynamic>)+]
t1 = _Call direct [dart.core::Object::] (%this)
RESULT: _T {}?
------------ #lib::C2:: ------------
%this = _Parameter #0 [_T (#lib::C2<dynamic>)+]
t1 = _Call direct [dart.core::Object::] (%this)
RESULT: _T {}?
------------ #lib::C2::id3 ------------
%this = _Parameter #0 [_T (#lib::C2<dynamic>)+]
%x = _Parameter #1
t2 = _Extract (%this[#lib::C2/0])
t3 = _CreateRuntimeType (dart.core::Comparable @ (t2))
t4 = _TypeCheck (%x against t3) (for parameter x)
RESULT: t4
------------ #lib::C2::id4 ------------
%this = _Parameter #0 [_T (#lib::C2<dynamic>)+]
%x = _Parameter #1
t2 = _Extract (%this[#lib::C2/0])
t3 = _CreateRuntimeType (#lib::I @ (t2))
t4 = _CreateRuntimeType (#lib::K @ (t3))
t5 = _TypeCheck (%x against t4) (for parameter x)
RESULT: t5
------------ #lib::main ------------
t0 = _Call direct [#lib::C::] (_T (#lib::C<dart.core::int>))
t1* = _Call [#lib::C::foo] (_T (#lib::C<dart.core::int>))
t2 = _Call direct [#lib::E::] (_T (#lib::E<dart.core::int, dart.core::String>))
t3* = _Call [#lib::E::foo] (_T (#lib::E<dart.core::int, dart.core::String>))
t4 = _Call direct [#lib::E::] (_T (#lib::E<dart.core::int, dart.core::String>))
t5* = _Call [#lib::E::bar] (_T (#lib::E<dart.core::int, dart.core::String>))
t6 = _Call direct [#lib::E::] (_T (#lib::E<dart.core::int, dart.core::String>))
t7* = _Call [#lib::E::baz] (_T (#lib::E<dart.core::int, dart.core::String>))
t8 = _Call direct [#lib::C::] (_T (#lib::C<#lib::Y>))
t9 = _Call direct [#lib::Y::] (_T (#lib::Y))
t10 = _Call [#lib::C::id1] (_T (#lib::C<#lib::Y>), _T (#lib::Y))
t11 = _Call direct [#lib::Z::] (_T (#lib::Z))
t12 = _Call [#lib::C::id2] (_T (#lib::C<#lib::Y>), _T (#lib::Z))
t13 = _Call direct [#lib::C2::] (_T (#lib::C2<dart.core::num>))
t14 = _Call [#lib::C2::id3] (_T (#lib::C2<dart.core::num>), _T (dart.core::double)+)
t15 = _Call direct [#lib::K::] (_T (#lib::K<#lib::J>))
t16 = _Call [#lib::C2::id4] (_T (#lib::C2<dart.core::num>), _T (#lib::K<#lib::J>))
used = _Join [dynamic] (_T {}?, t1, t3, t5, t7)
RESULT: used