------------ C1. ------------
%this = _Parameter #0 [_T (#lib::C1)+]
t1 = _Call direct [dart.core::Object.] (%this)
RESULT: _T {}?
------------ C2. ------------
%this = _Parameter #0 [_T (#lib::C2)+]
t1 = _Call direct [dart.core::Object.] (%this)
RESULT: _T {}?
------------ C3. ------------
%this = _Parameter #0 [_T (#lib::C3)+]
t1 = _Call direct [dart.core::Object.] (%this)
RESULT: _T {}?
------------ C4. ------------
%this = _Parameter #0 [_T (#lib::C4)+]
t1 = _Call direct [dart.core::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 [#lib::TestEnum.index] (%this, %index)
t4 = _Call direct set [#lib::TestEnum._name] (%this, %_name)
t5 = _Call direct [dart.core::Object.] (%this)
RESULT: _T {}?
------------ TestEnum.toString ------------
%this = _Parameter #0 [_T (#lib::TestEnum)+]
t1* = _Call virtual get [#lib::TestEnum._name] (%this)
RESULT: t1
------------ TestEnum.values ------------

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

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

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

RESULT: _T {}?
