------------ C1:: ------------
%this = _Parameter #0 [_T (#lib::C1)+]
t1 = _Call direct [Object::] (%this)
RESULT: _T {}?
------------ C2:: ------------
%this = _Parameter #0 [_T (#lib::C2)+]
t1 = _Call direct [Object::] (%this)
RESULT: _T {}?
------------ C3:: ------------
%this = _Parameter #0 [_T (#lib::C3)+]
t1 = _Call direct [Object::] (%this)
RESULT: _T {}?
------------ C4:: ------------
%this = _Parameter #0 [_T (#lib::C4)+]
t1 = _Call direct [Object::] (%this)
RESULT: _T {}?
------------ TestEnum:: ------------
%this = _Parameter #0 [_T (#lib::TestEnum)+]
%index = _Parameter #1 [_T (dart.core::int)+?]
%_name = _Parameter #2 [_T (dart.core::String)+?]
t3 = _Call direct set [TestEnum::index] (%this, %index)
t4 = _Call direct set [TestEnum::_name] (%this, %_name)
t5 = _Call direct [Object::] (%this)
RESULT: _T {}?
------------ TestEnum::toString ------------
%this = _Parameter #0 [_T (#lib::TestEnum)+]
t1* = _Call direct get [TestEnum::_name] (%this)
RESULT: t1
------------ TestEnum::values ------------

RESULT: _T (dart.core::_ImmutableList, ListConstant<TestEnum*>([#lib::TestEnum {index: 0, #lib::_name: TestEnum.v1, }, #lib::TestEnum {index: 1, #lib::_name: TestEnum.v2, }]))
------------ TestEnum::v1 ------------

RESULT: _T (#lib::TestEnum, #lib::TestEnum {index: 0, #lib::_name: TestEnum.v1, })
------------ TestEnum::v2 ------------

RESULT: _T (#lib::TestEnum, #lib::TestEnum {index: 1, #lib::_name: TestEnum.v2, })
------------ foo ------------
%x = _Parameter #0 [_T ANY?]
RESULT: _T {}?
------------ bar ------------
%x = _Parameter #0 [_T ANY?]
RESULT: _T {}?
------------ baz ------------
%x = _Parameter #0 [_T ANY?]
RESULT: _T {}?
------------ sequence ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
t1 = _Call direct [C2::] (_T (#lib::C2))
t2 = _Call direct [C3::] (_T (#lib::C3))
RESULT: _T (#lib::C3)
------------ if1 ------------
%cond = _Parameter #0 [_T (dart.core::bool)+?]
t1 = _Call direct [C1::] (_T (#lib::C1))
t2 = _Call direct [C2::] (_T (#lib::C2))
t3 = _Call direct [foo] (_T (#lib::C2))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C2), _T (#lib::C1))
RESULT: x_0
------------ if2 ------------
%cond1 = _Parameter #0 [_T (dart.core::bool)+?]
%cond2 = _Parameter #1 [_T (dart.core::bool)+?]
t2 = _Call direct [C1::] (_T (#lib::C1))
t3 = _Call direct [foo] (_T (#lib::C1))
t4 = _Call direct [C2::] (_T (#lib::C2))
t5 = _Call direct [bar] (_T (#lib::C2))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C2))
RESULT: x_0
------------ if3 ------------
%cond1 = _Parameter #0 [_T (dart.core::bool)+?]
%cond2 = _Parameter #1 [_T (dart.core::bool)+?]
t2 = _Call direct [C1::] (_T (#lib::C1))
t3 = _Call direct [C2::] (_T (#lib::C2))
t4* = _Call direct [foo] (_T (#lib::C2))
t5 = _TypeCheck (t4 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t6 = _Call direct [C3::] (_T (#lib::C3))
t7* = _Call direct [foo] (_T (#lib::C3))
t8 = _TypeCheck (t7 against dart.core::bool*) (for AsExpression(foo,  as bool*))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C2), _T (#lib::C3))
t10 = _Call direct [bar] (x_0)
RESULT: x_0
------------ if4 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
t1 = _Call direct [C2::] (_T (#lib::C2))
t2* = _Call direct [foo] (_T (#lib::C2))
t3 = _TypeCheck (t2 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t4 = _Call direct [C3::] (_T (#lib::C3))
t5* = _Call direct [foo] (_T (#lib::C3))
t6 = _TypeCheck (t5 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t7 = _Call direct [bar] (_T (#lib::C3))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C2), _T (#lib::C3))
RESULT: x_0
------------ if5 ------------
%cond = _Parameter #0 [_T (dart.core::bool)+?]
t1 = _Call direct [C1::] (_T (#lib::C1))
t2 = _Call direct [C2::] (_T (#lib::C2))
t3 = _Call direct [foo] (_T (#lib::C1))
RESULT: _T {}?
------------ if6a ------------
%x = _Parameter #0 [_T (dart.core::bool)+?]
t1 = _Call direct [foo] (_T (dart.core::bool, true))
t2 = _Call direct [bar] (_T (dart.core::bool, false))
x_0 = _Join [InterfaceType(bool*)] (_T (dart.core::bool, true), _T (dart.core::bool, false))
t4 = _Call direct [baz] (x_0)
RESULT: _T {}?
------------ if6b ------------
%x = _Parameter #0 [_T ANY?]
t1 = _TypeCheck (%x against dart.core::bool*) (for AsExpression( as bool*))
t2 = _Call direct [foo] (_T (dart.core::bool, true))
t3 = _Call direct [bar] (_T (dart.core::bool, false))
x_0 = _Join [DynamicType(dynamic)] (_T (dart.core::bool, true), _T (dart.core::bool, false))
t5 = _Call direct [baz] (x_0)
RESULT: _T {}?
------------ if7 ------------
%x = _Parameter #0 [_T (dart.core::int)+?]
%y = _Parameter #1 [_T (dart.core::String)+?]
%z = _Parameter #2 [_T ANY?]
t3* = _Call [num::==] (%x, _T (dart.core::_Smi, 5))
t4* = _Call [String::==] (%y, _T (dart.core::_OneByteString, hi))
t5 = _Call direct [Object::==] (%z, _T {}?)
t6 = _Narrow (%z to _T ANY)
t7 = _Call direct [foo] (_T (dart.core::_Smi, 5))
t8 = _Call direct [foo] (_T (dart.core::_OneByteString, hi))
t9 = _Call direct [foo] (t6)
RESULT: _T {}?
------------ if8 ------------
%x = _Parameter #0 [_T ANY?]
t1 = _Narrow (%x to _T (dart.core::String)+)
t2 = _Call direct [foo] (t1)
RESULT: _T {}?
------------ if9 ------------
%x = _Parameter #0 [_T (#lib::TestEnum)+?]
t1* = _Call [TestEnum::==] (%x, _T (#lib::TestEnum, #lib::TestEnum {index: 0, #lib::_name: TestEnum.v1, }))
t2 = _Call direct [foo] (_T (#lib::TestEnum, #lib::TestEnum {index: 0, #lib::_name: TestEnum.v1, }))
RESULT: _T {}?
------------ conditional1 ------------
%cond1 = _Parameter #0 [_T (dart.core::bool)+?]
%cond2 = _Parameter #1 [_T (dart.core::bool)+?]
t2 = _Call direct [C1::] (_T (#lib::C1))
t3 = _Call direct [C2::] (_T (#lib::C2))
t4* = _Call direct [foo] (_T (#lib::C2))
t5 = _TypeCheck (t4 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t6 = _Call direct [C3::] (_T (#lib::C3))
t7 = _Call direct [C4::] (_T (#lib::C4))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C3), _T (#lib::C4))
t9 = _Call direct [foo] (x_0)
t10 = _Join [InterfaceType(Object*)] (_T (#lib::C3), _T (#lib::C4))
t11 = _Narrow (t10 to _T (dart.core::Object)+?)
t12 = _Call direct [bar] (t11)
RESULT: _T {}?
------------ conditional2 ------------
%cond1 = _Parameter #0 [_T (dart.core::bool)+?]
%cond2 = _Parameter #1 [_T (dart.core::bool)+?]
t2 = _Call direct [C1::] (_T (#lib::C1))
t3 = _Call direct [C2::] (_T (#lib::C2))
t4* = _Call direct [foo] (_T (#lib::C2))
t5 = _TypeCheck (t4 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t6 = _Call direct [C3::] (_T (#lib::C3))
t7 = _Call direct [C4::] (_T (#lib::C4))
t8* = _Call direct [foo] (_T (dart.core::_GrowableList<#lib::C4*>))
t9 = _Call direct [foo] (_T (#lib::C3))
t10 = _Join [DynamicType(dynamic)] (_T (#lib::C3), t8)
t11 = _Call direct [bar] (t10)
RESULT: _T {}?
------------ loop1 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C2))
t2* = _Call direct [foo] (x_0)
t3 = _TypeCheck (t2 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t4 = _Call direct [C2::] (_T (#lib::C2))
t5 = _Call direct [bar] (x_0)
RESULT: x_0
------------ loop2 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C3))
t2 = _Call direct [foo] (x_0)
t3 = _Call direct [C2::] (_T (#lib::C2))
t4 = _Call direct [bar] (_T (#lib::C2))
t5 = _Call direct [C3::] (_T (#lib::C3))
t6* = _Call direct [bar] (_T (#lib::C3))
t7 = _TypeCheck (t6 against dart.core::bool*) (for AsExpression(bar,  as bool*))
RESULT: _T (#lib::C3)
------------ loop3 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
t1 = _Call direct [C2::] (_T (#lib::C2))
t2* = _Call direct [foo] (_T (#lib::C2))
t3 = _TypeCheck (t2 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t4 = _Call direct [C3::] (_T (#lib::C3))
t5 = _Call direct [bar] (_T (#lib::C2))
RESULT: _T (#lib::C2)
------------ loop4 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
t1 = _Call direct [C2::] (_T (#lib::C2))
t2 = _Call direct [foo] (_T (#lib::C2))
t3* = _Call get [Iterable::iterator] (_T (dart.core::_GrowableList<DynamicType(dynamic)?>))
t4* = _Call [Iterator::moveNext] (t3)
t5 = _Narrow (t3 to _T ANY)
t6 = _Call get [Iterator::current] (t5)
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C2), _T (#lib::C3))
t8 = _Call direct [foo] (x_0)
t9 = _Call direct [C3::] (_T (#lib::C3))
RESULT: x_0
------------ loop5 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C3))
t2* = _Call direct [foo] (x_0)
t3 = _TypeCheck (t2 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t4 = _Call direct [C2::] (_T (#lib::C2))
t5* = _Call direct [bar] (_T (#lib::C2))
t6 = _TypeCheck (t5 against dart.core::bool*) (for AsExpression(bar,  as bool*))
t7 = _Call direct [C3::] (_T (#lib::C3))
x_1 = _Join [DynamicType(dynamic)] (x_0, _T (#lib::C2))
RESULT: x_1
------------ loop6 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
x_1 = _Join [DynamicType(dynamic)] (_T (#lib::C3), _T (#lib::C2))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C1), x_1)
t3* = _Call direct [foo] (x_0)
t4 = _TypeCheck (t3 against dart.core::bool*) (for AsExpression(foo,  as bool*))
t5 = _Call direct [C2::] (_T (#lib::C2))
t6* = _Call direct [bar] (_T (#lib::C2))
t7 = _TypeCheck (t6 against dart.core::bool*) (for AsExpression(bar,  as bool*))
t8 = _Call direct [C3::] (_T (#lib::C3))
RESULT: x_0
------------ try1 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
t1 = _Call direct [C2::] (_T (#lib::C2))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C2), _T (#lib::C3))
t3 = _Call direct [foo] (x_0)
t4 = _Call direct [C3::] (_T (#lib::C3))
t5 = _Call direct [bar] (x_0)
t6 = _Call direct [C4::] (_T (#lib::C4))
RESULT: _T (#lib::C4)
------------ closure1 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C2))
t2 = _Call direct [foo] (x_0)
t3 = _Call direct [bar] (x_0)
t4 = _Call direct [foo] (_T ANY?)
t5 = _Call direct [C2::] (_T (#lib::C2))
RESULT: _T {}?
------------ closure2 ------------
t0 = _Call direct [C1::] (_T (#lib::C1))
x_0 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C2))
t2 = _Call direct [foo] (x_0)
t3 = _Call direct [C2::] (_T (#lib::C2))
t4 = _Call direct [foo] (_T ANY?)
RESULT: x_0
------------ switch1 ------------
%selector = _Parameter #0 [_T (dart.core::int)+?]
t1 = _Call direct [C1::] (_T (#lib::C1))
t2 = _Call direct [C2::] (_T (#lib::C2))
t3 = _Call direct [C3::] (_T (#lib::C3))
x_2 = _Join [DynamicType(dynamic)] (_T (#lib::C3), _T (#lib::C1))
x_3 = _Join [DynamicType(dynamic)] (x_2, _T (#lib::C2))
RESULT: x_3
------------ switch2 ------------
%selector = _Parameter #0 [_T (dart.core::int)+?]
t1 = _Call direct [C1::] (_T (#lib::C1))
t2 = _Call direct [C2::] (_T (#lib::C2))
t3 = _Call direct [C3::] (_T (#lib::C3))
x_2 = _Join [DynamicType(dynamic)] (_T (#lib::C3), _T (#lib::C2))
RESULT: x_2
------------ switch3 ------------
%selector = _Parameter #0 [_T (dart.core::int)+?]
t1 = _Call direct [C1::] (_T (#lib::C1))
t2 = _Call direct [C2::] (_T (#lib::C2))
x_1 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C2))
t4 = _Call direct [foo] (x_1)
t5 = _Call direct [C3::] (_T (#lib::C3))
x_2 = _Join [DynamicType(dynamic)] (_T (#lib::C1), _T (#lib::C3))
RESULT: x_2
------------ cast1 ------------
%x = _Parameter #0 [_T ANY?]
t1 = _TypeCheck (%x against #lib::C1*) (for AsExpression( as C1*))
t2 = _Call direct [foo] (t1)
t3 = _Call direct [bar] (t1)
RESULT: _T {}?
------------ main ------------

RESULT: _T {}?
