| library; | |
| import self as self; | |
| import "dart:core" as core; | |
| static method patternVariableAssignment((core::int, core::String) r) → dynamic/* scope=[ | |
| #ctx1: not-captured [r], | |
| ] */ /* scope=[ | |
| #ctx2: direct-captured [x], | |
| #ctx3: not-captured [s], | |
| ] */ { | |
| hoisted has-declared-initializer core::int x; | |
| hoisted has-declared-initializer core::String s; | |
| { | |
| final synthesized(core::int, core::String) #0#0 = r; | |
| x = #0#0.$1{core::int}; | |
| s = #0#0.$2{core::String}; | |
| } | |
| return () /* #ctx2 */ → core::int => x; | |
| } | |
| static method joinedVariableMultipleHeads(dynamic x) → dynamic/* scope=[ | |
| #ctx4: not-captured [x], | |
| ] */ { | |
| { | |
| final synthesized dynamic #0#0 = x; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| dynamic #t1; | |
| /* scope=[ | |
| #ctx5: not-captured [y#case#0,y#case#1], | |
| ] */{ | |
| lowered hoisted core::int y#case#0; | |
| lowered hoisted core::int y#case#1; | |
| if(#0#0 is core::int && (let final dynamic #t2 = y#case#0 = #0#0{core::int} in true) && (let final dynamic #t3 = #t1 = y#case#0 in true) || #0#0 is core::String && ((#0#2#isSet ?{core::int} #0#2 : let final dynamic #t4 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int}) is core::int && (let final dynamic #t5 = y#case#1 = #0#2#isSet ?{core::int} #0#2 : let final dynamic #t6 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int} in true)) && (let final dynamic #t7 = #t1 = y#case#1 in true))/* scope=[ | |
| #ctx6: direct-captured [y], | |
| ] */ { | |
| core::int y = #t1{core::int}; | |
| { | |
| return () /* #ctx6 */ → core::int => y; | |
| } | |
| } | |
| } | |
| { | |
| { | |
| { | |
| return () → core::int => 0; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method joinedVariableSingleHead(dynamic x) → dynamic/* scope=[ | |
| #ctx7: not-captured [x], | |
| ] */ { | |
| { | |
| final synthesized dynamic #0#0 = x; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| /* scope=[ | |
| #ctx8: direct-captured [y], | |
| ] */{ | |
| hoisted core::int y; | |
| if(#0#0 is core::int && (let final dynamic #t8 = y = #0#0{core::int} in true) || #0#0 is core::String && ((#0#2#isSet ?{core::int} #0#2 : let final dynamic #t9 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int}) is core::int && (let final dynamic #t10 = y = #0#2#isSet ?{core::int} #0#2 : let final dynamic #t11 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int} in true))) { | |
| { | |
| return () /* #ctx8 */ → core::int => y; | |
| } | |
| } | |
| } | |
| { | |
| { | |
| { | |
| return () → core::int => 0; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method joinedVariableMixed(dynamic x) → dynamic/* scope=[ | |
| #ctx9: not-captured [x], | |
| ] */ { | |
| { | |
| final synthesized dynamic #0#0 = x; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| synthesized core::int #0#4; | |
| synthesized core::bool #0#4#isSet = false; | |
| dynamic #t12; | |
| /* scope=[ | |
| #ctx10: not-captured [y#case#0,y#case#1], | |
| ] */{ | |
| lowered hoisted core::int y#case#0; | |
| lowered hoisted core::int y#case#1; | |
| if((#0#0 is core::int && (let final dynamic #t13 = y#case#0 = #0#0{core::int} in true) || #0#0 is core::String && ((#0#2#isSet ?{core::int} #0#2 : let final dynamic #t14 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int}) is core::int && (let final dynamic #t15 = y#case#0 = #0#2#isSet ?{core::int} #0#2 : let final dynamic #t16 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int} in true))) && (let final dynamic #t17 = #t12 = y#case#0 in true) || #0#0 is core::Object && ((#0#4#isSet ?{core::int} #0#4 : let final dynamic #t18 = #0#4#isSet = true in #0#4 = #0#0{core::Object}.{core::Object::hashCode}{core::int}) is core::int && (let final dynamic #t19 = y#case#1 = #0#4#isSet ?{core::int} #0#4 : let final dynamic #t20 = #0#4#isSet = true in #0#4 = #0#0{core::Object}.{core::Object::hashCode}{core::int} in true)) && (let final dynamic #t21 = #t12 = y#case#1 in true))/* scope=[ | |
| #ctx11: direct-captured [y], | |
| ] */ { | |
| core::int y = #t12{core::int}; | |
| { | |
| return () /* #ctx11 */ → core::int => y; | |
| } | |
| } | |
| } | |
| { | |
| { | |
| { | |
| return () → core::int => 0; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method joinedVariableSwitchExpression(dynamic x) → dynamic/* scope=[ | |
| #ctx12: not-captured [x], | |
| ] */ { | |
| return block { | |
| () → core::int #t22; | |
| final synthesized dynamic #0#0 = x; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| #L1: | |
| { | |
| /* scope=[ | |
| #ctx13: direct-captured [y], | |
| ] */{ | |
| hoisted core::int y; | |
| if(#0#0 is core::int && (let final dynamic #t23 = y = #0#0{core::int} in true) || #0#0 is core::String && ((#0#2#isSet ?{core::int} #0#2 : let final dynamic #t24 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int}) is core::int && (let final dynamic #t25 = y = #0#2#isSet ?{core::int} #0#2 : let final dynamic #t26 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int} in true))) { | |
| #t22 = () /* #ctx13 */ → core::int => y; | |
| break #L1; | |
| } | |
| } | |
| { | |
| if(true) { | |
| #t22 = () → core::int => 0; | |
| break #L1; | |
| } | |
| } | |
| } | |
| } =>#t22; | |
| } | |
| static method joinedVariableIfCaseStatement(dynamic x) → dynamic/* scope=[ | |
| #ctx14: not-captured [x], | |
| ] */ { | |
| { | |
| final synthesized dynamic #0#0 = x; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| /* scope=[ | |
| #ctx15: direct-captured [y], | |
| ] */{ | |
| hoisted core::int y; | |
| if(#0#0 is core::int && (let final dynamic #t27 = y = #0#0{core::int} in true) || #0#0 is core::String && ((#0#2#isSet ?{core::int} #0#2 : let final dynamic #t28 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int}) is core::int && (let final dynamic #t29 = y = #0#2#isSet ?{core::int} #0#2 : let final dynamic #t30 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int} in true))) { | |
| return () /* #ctx15 */ → core::int => y; | |
| } | |
| else { | |
| return () → core::int => 0; | |
| } | |
| } | |
| } | |
| } | |
| static method joinedVariableIfCaseElement(dynamic x) → dynamic/* scope=[ | |
| #ctx16: not-captured [x], | |
| ] */ { | |
| return block { | |
| final core::List<() → core::int> #t31 = <() → core::int>[]; | |
| { | |
| final synthesized dynamic #0#0 = x; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| /* scope=[ | |
| #ctx17: direct-captured [y], | |
| ] */{ | |
| hoisted core::int y; | |
| if(#0#0 is core::int && (let final dynamic #t32 = y = #0#0{core::int} in true) || #0#0 is core::String && ((#0#2#isSet ?{core::int} #0#2 : let final dynamic #t33 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int}) is core::int && (let final dynamic #t34 = y = #0#2#isSet ?{core::int} #0#2 : let final dynamic #t35 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int} in true))) | |
| #t31.{core::List::add}{Invariant}(() /* #ctx17 */ → core::int => y){(() → core::int) → void}; | |
| else | |
| #t31.{core::List::add}{Invariant}(() → core::int => 0){(() → core::int) → void}; | |
| } | |
| } | |
| } =>#t31; | |
| } | |
| static method staleSwitchCaseBuilderTest(dynamic x, (core::String, core::int) r) → dynamic/* scope=[ | |
| #ctx18: not-captured [x,r], | |
| ] */ /* scope=[ | |
| #ctx19: direct-captured [s], | |
| #ctx20: not-captured [n], | |
| ] */ { | |
| { | |
| final synthesized dynamic #0#0 = x; | |
| /* scope=[ | |
| #ctx21: direct-captured [y], | |
| ] */{ | |
| hoisted core::int y; | |
| if(#0#0 is core::int && (let final dynamic #t36 = y = #0#0{core::int} in true)) { | |
| { | |
| return () /* #ctx21 */ → core::int => y; | |
| } | |
| } | |
| } | |
| { | |
| { | |
| { | |
| return null; | |
| } | |
| } | |
| } | |
| } | |
| hoisted has-declared-initializer core::String s; | |
| hoisted has-declared-initializer core::int n; | |
| { | |
| final synthesized(core::String, core::int) #1#0 = r; | |
| s = #1#0.$1{core::String}; | |
| n = #1#0.$2{core::int}; | |
| } | |
| return () /* #ctx19 */ → core::String => s; | |
| } | |
| static method mergingJoinedVariableScopeAndLocalCaseScopeTest(dynamic x) → dynamic/* scope=[ | |
| #ctx22: not-captured [x], | |
| ] */ { | |
| { | |
| final synthesized dynamic #0#0 = x; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| dynamic #t37; | |
| /* scope=[ | |
| #ctx23: not-captured [y#case#0,y#case#1], | |
| ] */{ | |
| lowered hoisted core::int y#case#0; | |
| lowered hoisted core::int y#case#1; | |
| if(#0#0 is core::int && (let final dynamic #t38 = y#case#0 = #0#0{core::int} in true) && (let final dynamic #t39 = #t37 = y#case#0 in true) || #0#0 is core::String && ((#0#2#isSet ?{core::int} #0#2 : let final dynamic #t40 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int}) is core::int && (let final dynamic #t41 = y#case#1 = #0#2#isSet ?{core::int} #0#2 : let final dynamic #t42 = #0#2#isSet = true in #0#2 = #0#0{core::String}.{core::String::length}{core::int} in true)) && (let final dynamic #t43 = #t37 = y#case#1 in true))/* scope=[ | |
| #ctx24: direct-captured [y], | |
| ] */ { | |
| core::int y = #t37{core::int}; | |
| /* scope=[ | |
| #ctx25: direct-captured [a], | |
| ] */{ | |
| core::int a = 0; | |
| return () /* #ctx24 #ctx25 */ → core::List<core::int> => <core::int>[a, y]; | |
| } | |
| } | |
| } | |
| { | |
| { | |
| { | |
| return null; | |
| } | |
| } | |
| } | |
| } | |
| } |