------------ 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 [Object::==] (%z, _T {}?)
t6 = _Call direct [foo] (_T (dart.core::_Smi, 5))
t7 = _Call direct [foo] (_T (dart.core::_OneByteString, hi))
t8 = _Narrow (%z to _T ANY)
t9 = _Call direct [foo] (t8)
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 [Object::==] (%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 {}?
