dart-sdk/pkg/front_end/testcases/late_lowering/caching.dart.weak.expect
Johnni Winther 70d3adade2 [cfe] Move hoisted variables after variable caches
This moves the hoisted declaration of pattern variables till after the
variable cache declarations, such that any use of variables in the
matched expression, shadowed by the pattern variables, occurs before the
declaration of the shadowing variables.

Closes #54559

Change-Id: Id8ca8e7a499b9d71a50cd9987808d159f26bbd24
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345942
Reviewed-by: Erik Ernst <eernst@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2024-01-16 09:09:29 +00:00

1008 lines
80 KiB
Plaintext

library;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;
class Class extends core::Object {
field core::int field;
final field core::int finalField;
constructor •(core::int field, core::int finalField) → self::Class
: self::Class::field = field, self::Class::finalField = finalField, super core::Object::•()
;
get getter() → core::int
return this.{self::Class::finalField}{core::int};
}
static method ifCase(dynamic o) → core::int {
core::print("o = ${o}");
{
final synthesized dynamic #0#0 = o;
if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) {
return 1;
}
}
{
final synthesized dynamic #1#0 = o;
synthesized core::Object? #1#2;
synthesized core::bool #1#2#isSet = false;
if(#1#0 is ({f: core::Object?}) && ((let final dynamic #t1 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final dynamic #t2 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final dynamic #t3 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final dynamic #t4 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final dynamic #t5 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final dynamic #t6 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
return 2;
}
}
{
final synthesized dynamic #2#0 = o;
if(#C4 =={core::num::==}{(core::Object) → core::bool} #2#0 || #C5 =={core::num::==}{(core::Object) → core::bool} #2#0) {
return 3;
}
}
{
final synthesized dynamic #3#0 = o;
synthesized core::Object? #3#2;
synthesized core::bool #3#2#isSet = false;
if(#3#0 is ({g: core::Object?}) && (let final dynamic #t7 = (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final dynamic #t8 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final dynamic #t9 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
return 4;
}
}
{
final synthesized dynamic #4#0 = o;
if(#4#0 is ({a: core::Object?}) && (let final dynamic #t10 = #4#0{({a: core::Object?})}.a{core::Object?}! in true)) {
return 5;
}
}
{
final synthesized dynamic #5#0 = o;
if(#5#0 is ({b: core::Object?}) && (!(#5#0{({b: core::Object?})}.b{core::Object?} == null) && true)) {
return 6;
}
}
{
final synthesized dynamic #6#0 = o;
if(#6#0 is core::List<dynamic> && #6#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} #6#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C7 =={core::num::==}{(core::Object) → core::bool} #6#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) {
return 7;
}
}
{
final synthesized dynamic #7#0 = o;
if(#7#0 is core::List<dynamic> && #7#0{core::List<dynamic>}.{core::List::length}{core::int}.{core::num::>=}(#C7){(core::num) → core::bool} && #C7 =={core::num::==}{(core::Object) → core::bool} #7#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C2 =={core::num::==}{(core::Object) → core::bool} #7#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) {
return 8;
}
}
{
final synthesized dynamic #8#0 = o;
synthesized core::int #8#2;
synthesized core::bool #8#2#isSet = false;
if(#8#0 is core::List<dynamic> && (#8#2#isSet ?{core::int} #8#2{core::int} : let final dynamic #t11 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C8 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}((#8#2#isSet ?{core::int} #8#2{core::int} : let final dynamic #t12 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
return 9;
}
}
{
final synthesized dynamic #9#0 = o;
synthesized core::List<dynamic> #9#12;
synthesized core::bool #9#12#isSet = false;
synthesized dynamic #9#15;
synthesized core::bool #9#15#isSet = false;
synthesized dynamic #9#19;
synthesized core::bool #9#19#isSet = false;
if(#9#0 is core::List<dynamic> && #9#0{core::List<dynamic>}.{core::List::length}{core::int}.{core::num::>=}(#C7){(core::num) → core::bool} && #C8 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t13 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t14 = (#9#15#isSet ?{dynamic} #9#15{dynamic} : let final dynamic #t15 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t16 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#9#15#isSet ?{dynamic} #9#15{dynamic} : let final dynamic #t17 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t18 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final dynamic #t19 = (#9#19#isSet ?{dynamic} #9#19{dynamic} : let final dynamic #t20 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t21 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#9#19#isSet ?{dynamic} #9#19{dynamic} : let final dynamic #t22 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t23 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
return 10;
}
}
{
final synthesized dynamic #10#0 = o;
synthesized core::int #10#2;
synthesized core::bool #10#2#isSet = false;
synthesized core::List<dynamic> #10#12;
synthesized core::bool #10#12#isSet = false;
synthesized dynamic #10#16;
synthesized core::bool #10#16#isSet = false;
synthesized dynamic #10#20;
synthesized core::bool #10#20#isSet = false;
if(#10#0 is core::List<dynamic> && (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t24 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C3 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C4 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t25 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t26 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t27 = (#10#16#isSet ?{dynamic} #10#16{dynamic} : let final dynamic #t28 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t29 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t30 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#10#16#isSet ?{dynamic} #10#16{dynamic} : let final dynamic #t31 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t32 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t33 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final dynamic #t34 = (#10#20#isSet ?{dynamic} #10#20{dynamic} : let final dynamic #t35 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t36 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t37 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#10#20#isSet ?{dynamic} #10#20{dynamic} : let final dynamic #t38 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t39 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t40 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}((#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t41 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
return 11;
}
}
{
final synthesized dynamic #11#0 = o;
if(#11#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} #11#0{self::Class}.{self::Class::field}{core::int}) {
return 12;
}
}
{
final synthesized dynamic #12#0 = o;
if(#12#0 is self::Class && #C7 =={core::num::==}{(core::Object) → core::bool} #12#0{self::Class}.{self::Class::finalField}{core::int}) {
return 13;
}
}
{
final synthesized dynamic #13#0 = o;
if(#13#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} #13#0{self::Class}.{self::Class::field}{core::int} && #C8 =={core::num::==}{(core::Object) → core::bool} #13#0{self::Class}.{self::Class::getter}{core::int}) {
return 14;
}
}
{
final synthesized dynamic #14#0 = o;
if(#14#0 is self::Class) {
return 15;
}
}
{
final synthesized dynamic #15#0 = o;
if(#15#0 =={core::Object::==}{(core::Object) → core::bool} #C9) {
return 16;
}
}
{
final synthesized dynamic #16#0 = o;
if(#16#0 is ({e: core::Object?}) && !(#16#0{({e: core::Object?})}.e{core::Object?} =={core::Object::==}{(core::Object) → core::bool} #C10)) {
return 17;
}
}
{
final synthesized dynamic #17#0 = o;
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
return 18;
}
}
{
final synthesized dynamic #18#0 = o;
if(#18#0 is core::List<dynamic> && #18#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1) {
return 19;
}
}
{
final synthesized dynamic #19#0 = o;
if(#19#0 is core::bool) {
return 20;
}
}
{
final synthesized dynamic #20#0 = o;
if(#20#0 is core::Map<dynamic, dynamic> && o{core::Map<dynamic, dynamic>}.{core::Map::isEmpty}{core::bool}) {
return 21;
}
}
{
final synthesized dynamic #21#0 = o;
if(#21#0 is core::Map<dynamic, dynamic> && #21#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && #21#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic} is core::int) {
return 22;
}
}
{
final synthesized dynamic #22#0 = o;
if(#22#0 is core::Map<dynamic, dynamic> && #22#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #22#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic} is core::String) {
return 23;
}
}
{
final synthesized dynamic #23#0 = o;
{
hoisted dynamic a;
if(#23#0 is core::Map<dynamic, dynamic> && #23#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) {
a = #23#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic};
{
return 24;
}
}
}
}
{
final synthesized dynamic #24#0 = o;
synthesized dynamic #24#4;
synthesized core::bool #24#4#isSet = false;
{
hoisted core::int b;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final dynamic #t42 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final dynamic #t43 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
{
return 25;
}
}
}
}
{
final synthesized dynamic #25#0 = o;
if(#25#0 is (core::Object?, core::Object?) && #C12 =={core::num::==}{(core::Object) → core::bool} #25#0{(core::Object?, core::Object?)}.$1{core::Object?} && #C1 =={core::num::==}{(core::Object) → core::bool} #25#0{(core::Object?, core::Object?)}.$2{core::Object?}) {
return 26;
}
}
{
final synthesized dynamic #26#0 = o;
{
hoisted dynamic c;
if(#26#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #26#0{({a: core::Object?, b: core::Object?})}.a{core::Object?}) {
c = #26#0{({a: core::Object?, b: core::Object?})}.b{core::Object?};
{
return 27;
}
}
}
}
{
final synthesized dynamic #27#0 = o;
{
hoisted dynamic d;
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final dynamic #t44 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
return 28;
}
}
}
return 0;
}
static method ifCaseElse(dynamic o) → core::int {
core::print("o = ${o}");
{
final synthesized dynamic #0#0 = o;
if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) {
return 1;
}
else {
final synthesized dynamic #1#0 = o;
synthesized core::Object? #1#2;
synthesized core::bool #1#2#isSet = false;
if(#1#0 is ({f: core::Object?}) && ((let final dynamic #t45 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final dynamic #t46 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final dynamic #t47 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final dynamic #t48 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final dynamic #t49 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final dynamic #t50 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
return 2;
}
else {
final synthesized dynamic #2#0 = o;
if(#C4 =={core::num::==}{(core::Object) → core::bool} #2#0 || #C5 =={core::num::==}{(core::Object) → core::bool} #2#0) {
return 3;
}
else {
final synthesized dynamic #3#0 = o;
synthesized core::Object? #3#2;
synthesized core::bool #3#2#isSet = false;
if(#3#0 is ({g: core::Object?}) && (let final dynamic #t51 = (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final dynamic #t52 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final dynamic #t53 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
return 4;
}
else {
final synthesized dynamic #4#0 = o;
if(#4#0 is ({a: core::Object?}) && (let final dynamic #t54 = #4#0{({a: core::Object?})}.a{core::Object?}! in true)) {
return 5;
}
else {
final synthesized dynamic #5#0 = o;
if(#5#0 is ({b: core::Object?}) && (!(#5#0{({b: core::Object?})}.b{core::Object?} == null) && true)) {
return 6;
}
else {
final synthesized dynamic #6#0 = o;
if(#6#0 is core::List<dynamic> && #6#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} #6#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C7 =={core::num::==}{(core::Object) → core::bool} #6#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) {
return 7;
}
else {
final synthesized dynamic #7#0 = o;
if(#7#0 is core::List<dynamic> && #7#0{core::List<dynamic>}.{core::List::length}{core::int}.{core::num::>=}(#C7){(core::num) → core::bool} && #C7 =={core::num::==}{(core::Object) → core::bool} #7#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C2 =={core::num::==}{(core::Object) → core::bool} #7#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) {
return 8;
}
else {
final synthesized dynamic #8#0 = o;
synthesized core::int #8#2;
synthesized core::bool #8#2#isSet = false;
if(#8#0 is core::List<dynamic> && (#8#2#isSet ?{core::int} #8#2{core::int} : let final dynamic #t55 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C8 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}((#8#2#isSet ?{core::int} #8#2{core::int} : let final dynamic #t56 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
return 9;
}
else {
final synthesized dynamic #9#0 = o;
synthesized core::List<dynamic> #9#12;
synthesized core::bool #9#12#isSet = false;
synthesized dynamic #9#15;
synthesized core::bool #9#15#isSet = false;
synthesized dynamic #9#19;
synthesized core::bool #9#19#isSet = false;
if(#9#0 is core::List<dynamic> && #9#0{core::List<dynamic>}.{core::List::length}{core::int}.{core::num::>=}(#C7){(core::num) → core::bool} && #C8 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t57 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t58 = (#9#15#isSet ?{dynamic} #9#15{dynamic} : let final dynamic #t59 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t60 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#9#15#isSet ?{dynamic} #9#15{dynamic} : let final dynamic #t61 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t62 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final dynamic #t63 = (#9#19#isSet ?{dynamic} #9#19{dynamic} : let final dynamic #t64 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t65 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#9#19#isSet ?{dynamic} #9#19{dynamic} : let final dynamic #t66 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final dynamic #t67 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
return 10;
}
else {
final synthesized dynamic #10#0 = o;
synthesized core::int #10#2;
synthesized core::bool #10#2#isSet = false;
synthesized core::List<dynamic> #10#12;
synthesized core::bool #10#12#isSet = false;
synthesized dynamic #10#16;
synthesized core::bool #10#16#isSet = false;
synthesized dynamic #10#20;
synthesized core::bool #10#20#isSet = false;
if(#10#0 is core::List<dynamic> && (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t68 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C3 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C4 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t69 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t70 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t71 = (#10#16#isSet ?{dynamic} #10#16{dynamic} : let final dynamic #t72 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t73 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t74 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#10#16#isSet ?{dynamic} #10#16{dynamic} : let final dynamic #t75 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t76 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t77 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final dynamic #t78 = (#10#20#isSet ?{dynamic} #10#20{dynamic} : let final dynamic #t79 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t80 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t81 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#10#20#isSet ?{dynamic} #10#20{dynamic} : let final dynamic #t82 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final dynamic #t83 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t84 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}((#10#2#isSet ?{core::int} #10#2{core::int} : let final dynamic #t85 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
return 11;
}
else {
final synthesized dynamic #11#0 = o;
if(#11#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} #11#0{self::Class}.{self::Class::field}{core::int}) {
return 12;
}
else {
final synthesized dynamic #12#0 = o;
if(#12#0 is self::Class && #C7 =={core::num::==}{(core::Object) → core::bool} #12#0{self::Class}.{self::Class::finalField}{core::int}) {
return 13;
}
else {
final synthesized dynamic #13#0 = o;
if(#13#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} #13#0{self::Class}.{self::Class::field}{core::int} && #C8 =={core::num::==}{(core::Object) → core::bool} #13#0{self::Class}.{self::Class::getter}{core::int}) {
return 14;
}
else {
final synthesized dynamic #14#0 = o;
if(#14#0 is self::Class) {
return 15;
}
else {
final synthesized dynamic #15#0 = o;
if(#15#0 =={core::Object::==}{(core::Object) → core::bool} #C9) {
return 16;
}
else {
final synthesized dynamic #16#0 = o;
if(#16#0 is ({e: core::Object?}) && !(#16#0{({e: core::Object?})}.e{core::Object?} =={core::Object::==}{(core::Object) → core::bool} #C10)) {
return 17;
}
else {
final synthesized dynamic #17#0 = o;
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
return 18;
}
else {
final synthesized dynamic #18#0 = o;
if(#18#0 is core::List<dynamic> && #18#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1) {
return 19;
}
else {
final synthesized dynamic #19#0 = o;
if(#19#0 is core::bool) {
return 20;
}
else {
final synthesized dynamic #20#0 = o;
if(#20#0 is core::Map<dynamic, dynamic> && o{core::Map<dynamic, dynamic>}.{core::Map::isEmpty}{core::bool}) {
return 21;
}
else {
final synthesized dynamic #21#0 = o;
if(#21#0 is core::Map<dynamic, dynamic> && #21#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && #21#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic} is core::int) {
return 22;
}
else {
final synthesized dynamic #22#0 = o;
if(#22#0 is core::Map<dynamic, dynamic> && #22#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #22#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic} is core::String) {
return 23;
}
else {
final synthesized dynamic #23#0 = o;
{
hoisted dynamic a;
if(#23#0 is core::Map<dynamic, dynamic> && #23#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) {
a = #23#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic};
{
return 24;
}
}
else {
final synthesized dynamic #24#0 = o;
synthesized dynamic #24#4;
synthesized core::bool #24#4#isSet = false;
{
hoisted core::int b;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final dynamic #t86 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final dynamic #t87 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
{
return 25;
}
}
else {
final synthesized dynamic #25#0 = o;
if(#25#0 is (core::Object?, core::Object?) && #C12 =={core::num::==}{(core::Object) → core::bool} #25#0{(core::Object?, core::Object?)}.$1{core::Object?} && #C1 =={core::num::==}{(core::Object) → core::bool} #25#0{(core::Object?, core::Object?)}.$2{core::Object?}) {
return 26;
}
else {
final synthesized dynamic #26#0 = o;
{
hoisted dynamic c;
if(#26#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #26#0{({a: core::Object?, b: core::Object?})}.a{core::Object?}) {
c = #26#0{({a: core::Object?, b: core::Object?})}.b{core::Object?};
{
return 27;
}
}
else {
final synthesized dynamic #27#0 = o;
{
hoisted dynamic d;
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final dynamic #t88 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
return 28;
}
else {
return 0;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
static method switchStatement(dynamic o) → core::int {
core::print("o = ${o}");
#L1:
{
final synthesized dynamic #0#0 = o;
synthesized core::Object? #0#4;
synthesized core::bool #0#4#isSet = false;
synthesized core::Object? #0#15;
synthesized core::bool #0#15#isSet = false;
synthesized core::Object? #0#20;
synthesized core::bool #0#20#isSet = false;
synthesized core::Object? #0#23;
synthesized core::bool #0#23#isSet = false;
synthesized core::int #0#26;
synthesized core::bool #0#26#isSet = false;
synthesized dynamic #0#30;
synthesized core::bool #0#30#isSet = false;
synthesized dynamic #0#32;
synthesized core::bool #0#32#isSet = false;
synthesized core::bool #0#34;
synthesized core::bool #0#34#isSet = false;
synthesized core::bool #0#38;
synthesized core::bool #0#38#isSet = false;
synthesized dynamic #0#43;
synthesized core::bool #0#43#isSet = false;
synthesized core::List<dynamic> #0#47;
synthesized core::bool #0#47#isSet = false;
synthesized dynamic #0#50;
synthesized core::bool #0#50#isSet = false;
synthesized dynamic #0#53;
synthesized core::bool #0#53#isSet = false;
synthesized core::List<dynamic> #0#58;
synthesized core::bool #0#58#isSet = false;
synthesized dynamic #0#61;
synthesized core::bool #0#61#isSet = false;
synthesized dynamic #0#64;
synthesized core::bool #0#64#isSet = false;
synthesized core::int #0#69;
synthesized core::bool #0#69#isSet = false;
synthesized dynamic #0#98;
synthesized core::bool #0#98#isSet = false;
{
if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) {
{
return 1;
}
}
}
{
if(#0#0 is ({f: core::Object?}) && ((let final dynamic #t89 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final dynamic #t90 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final dynamic #t91 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final dynamic #t92 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final dynamic #t93 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final dynamic #t94 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
{
return 2;
}
}
}
{
if(#C4 =={core::num::==}{(core::Object) → core::bool} #0#0 || #C5 =={core::num::==}{(core::Object) → core::bool} #0#0) {
{
return 3;
}
}
}
{
if(#0#0 is ({g: core::Object?}) && (let final dynamic #t95 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final dynamic #t96 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final dynamic #t97 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
{
return 4;
}
}
}
{
if(#0#0 is ({a: core::Object?}) && (let final dynamic #t98 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final dynamic #t99 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
{
return 5;
}
}
}
{
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final dynamic #t100 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
{
return 6;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t101 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t102 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t103 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
{
return 7;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final dynamic #t104 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t105 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t106 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t107 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
{
return 8;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final dynamic #t108 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t109 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t110 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t111 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final dynamic #t112 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t113 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
{
return 9;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final dynamic #t114 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t115 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t116 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t117 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t118 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t119 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final dynamic #t120 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t121 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final dynamic #t122 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t123 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final dynamic #t124 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final dynamic #t125 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t126 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final dynamic #t127 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t128 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
{
return 10;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final dynamic #t129 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t130 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t131 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t132 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t133 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t134 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t135 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final dynamic #t136 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t137 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t138 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final dynamic #t139 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t140 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t141 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final dynamic #t142 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final dynamic #t143 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t144 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t145 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final dynamic #t146 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t147 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t148 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final dynamic #t149 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t150 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
{
return 11;
}
}
}
{
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final dynamic #t151 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
{
return 12;
}
}
}
{
if(#0#0 is self::Class && #C7 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::finalField}{core::int}) {
{
return 13;
}
}
}
{
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final dynamic #t152 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
{
return 14;
}
}
}
{
if(#0#0 is self::Class) {
{
return 15;
}
}
}
{
if(#0#0 =={core::Object::==}{(core::Object) → core::bool} #C9) {
{
return 16;
}
}
}
{
if(#0#0 is ({e: core::Object?}) && !(#0#0{({e: core::Object?})}.e{core::Object?} =={core::Object::==}{(core::Object) → core::bool} #C10)) {
{
return 17;
}
}
}
{
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
{
return 18;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t153 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
{
return 19;
}
}
}
{
if(#0#0 is core::bool) {
{
return 20;
}
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && o{core::Map<dynamic, dynamic>}.{core::Map::isEmpty}{core::bool}) {
{
return 21;
}
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic} is core::int) {
{
return 22;
}
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic} is core::String) {
{
return 23;
}
}
}
{
hoisted dynamic a;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool} && (let final dynamic #t154 = a = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic} in true)) {
{
return 24;
}
}
}
{
hoisted core::int b;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && ((#0#98#isSet ?{dynamic} #0#98{dynamic} : let final dynamic #t155 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int && (let final dynamic #t156 = b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final dynamic #t157 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int in true))) {
{
return 25;
}
}
}
{
if(#0#0 is (core::Object?, core::Object?) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$1{core::Object?} && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$2{core::Object?}) {
{
return 26;
}
}
}
{
hoisted dynamic c;
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final dynamic #t158 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?}) && (let final dynamic #t159 = c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final dynamic #t160 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?} in true)) {
{
return 27;
}
}
}
{
hoisted dynamic d;
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final dynamic #t161 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
{
return 28;
}
}
}
{
{
{
return 0;
}
}
}
}
}
static method switchExpression(dynamic o) → core::int {
core::print("o = ${o}");
return block {
core::int #t162;
final synthesized dynamic #0#0 = o;
synthesized core::Object? #0#4;
synthesized core::bool #0#4#isSet = false;
synthesized core::Object? #0#15;
synthesized core::bool #0#15#isSet = false;
synthesized core::Object? #0#20;
synthesized core::bool #0#20#isSet = false;
synthesized core::Object? #0#23;
synthesized core::bool #0#23#isSet = false;
synthesized core::int #0#26;
synthesized core::bool #0#26#isSet = false;
synthesized dynamic #0#30;
synthesized core::bool #0#30#isSet = false;
synthesized dynamic #0#32;
synthesized core::bool #0#32#isSet = false;
synthesized core::bool #0#34;
synthesized core::bool #0#34#isSet = false;
synthesized core::bool #0#38;
synthesized core::bool #0#38#isSet = false;
synthesized dynamic #0#43;
synthesized core::bool #0#43#isSet = false;
synthesized core::List<dynamic> #0#47;
synthesized core::bool #0#47#isSet = false;
synthesized dynamic #0#50;
synthesized core::bool #0#50#isSet = false;
synthesized dynamic #0#53;
synthesized core::bool #0#53#isSet = false;
synthesized core::List<dynamic> #0#58;
synthesized core::bool #0#58#isSet = false;
synthesized dynamic #0#61;
synthesized core::bool #0#61#isSet = false;
synthesized dynamic #0#64;
synthesized core::bool #0#64#isSet = false;
synthesized core::int #0#69;
synthesized core::bool #0#69#isSet = false;
synthesized dynamic #0#98;
synthesized core::bool #0#98#isSet = false;
#L2:
{
{
if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) {
#t162 = 1;
break #L2;
}
}
{
if(#0#0 is ({f: core::Object?}) && ((let final dynamic #t163 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final dynamic #t164 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final dynamic #t165 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final dynamic #t166 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final dynamic #t167 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final dynamic #t168 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
#t162 = 2;
break #L2;
}
}
{
if(#C4 =={core::num::==}{(core::Object) → core::bool} #0#0 || #C5 =={core::num::==}{(core::Object) → core::bool} #0#0) {
#t162 = 3;
break #L2;
}
}
{
if(#0#0 is ({g: core::Object?}) && (let final dynamic #t169 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final dynamic #t170 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final dynamic #t171 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
#t162 = 4;
break #L2;
}
}
{
if(#0#0 is ({a: core::Object?}) && (let final dynamic #t172 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final dynamic #t173 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
#t162 = 5;
break #L2;
}
}
{
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final dynamic #t174 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
#t162 = 6;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t175 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t176 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t177 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t162 = 7;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final dynamic #t178 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t179 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t180 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t181 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t162 = 8;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final dynamic #t182 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t183 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t184 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t185 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final dynamic #t186 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t187 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t162 = 9;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final dynamic #t188 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t189 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t190 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t191 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t192 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t193 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final dynamic #t194 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t195 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final dynamic #t196 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t197 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final dynamic #t198 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final dynamic #t199 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t200 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final dynamic #t201 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final dynamic #t202 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
#t162 = 10;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final dynamic #t203 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t204 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final dynamic #t205 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final dynamic #t206 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t207 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t208 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t209 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final dynamic #t210 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t211 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t212 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final dynamic #t213 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t214 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t215 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final dynamic #t216 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final dynamic #t217 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t218 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t219 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final dynamic #t220 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final dynamic #t221 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t222 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final dynamic #t223 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t224 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t162 = 11;
break #L2;
}
}
{
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final dynamic #t225 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
#t162 = 12;
break #L2;
}
}
{
if(#0#0 is self::Class && #C7 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::finalField}{core::int}) {
#t162 = 13;
break #L2;
}
}
{
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final dynamic #t226 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
#t162 = 14;
break #L2;
}
}
{
if(#0#0 is self::Class) {
#t162 = 15;
break #L2;
}
}
{
if(#0#0 =={core::Object::==}{(core::Object) → core::bool} #C9) {
#t162 = 16;
break #L2;
}
}
{
if(#0#0 is ({e: core::Object?}) && !(#0#0{({e: core::Object?})}.e{core::Object?} =={core::Object::==}{(core::Object) → core::bool} #C10)) {
#t162 = 17;
break #L2;
}
}
{
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
#t162 = 18;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final dynamic #t227 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
#t162 = 19;
break #L2;
}
}
{
if(#0#0 is core::bool) {
#t162 = 20;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && o{core::Map<dynamic, dynamic>}.{core::Map::isEmpty}{core::bool}) {
#t162 = 21;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic} is core::int) {
#t162 = 22;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic} is core::String) {
#t162 = 23;
break #L2;
}
}
{
hoisted dynamic a;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) {
a = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic};
#t162 = 24;
break #L2;
}
}
{
hoisted core::int b;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final dynamic #t228 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final dynamic #t229 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
#t162 = 25;
break #L2;
}
}
{
if(#0#0 is (core::Object?, core::Object?) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$1{core::Object?} && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$2{core::Object?}) {
#t162 = 26;
break #L2;
}
}
{
hoisted dynamic c;
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final dynamic #t230 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?})) {
c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final dynamic #t231 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?};
#t162 = 27;
break #L2;
}
}
{
hoisted dynamic d;
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final dynamic #t232 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
#t162 = 28;
break #L2;
}
}
{
if(true) {
#t162 = 0;
break #L2;
}
}
throw new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t162;
}
static method test(dynamic expected, dynamic value) → dynamic {
self::expect(expected, self::ifCase(value));
self::expect(expected, self::ifCaseElse(value));
self::expect(expected, self::switchStatement(value));
self::expect(expected, self::switchExpression(value));
}
static method main() → dynamic {
self::test(0, 0);
self::test(1, 1);
self::test(2, ({f: 3}));
self::test(2, ({f: 4}));
self::test(3, 6);
self::test(3, 7);
self::test(4, ({g: 8}));
self::test(5, ({a: 1}));
self::test(6, ({b: 2}));
self::test(0, ({b: null}));
self::test(0, <core::int>[1, 3]);
self::test(7, <core::int>[1, 2]);
self::test(8, <core::int>[2, 3]);
self::test(8, <core::int>[2, 3, 4]);
self::test(8, <core::int>[2, 3, 4, 5]);
self::test(9, <core::int>[3, 4, 5]);
self::test(9, <core::int>[3, 4, 6, 5]);
self::test(10, <core::int>[4, 5, 0, 3]);
self::test(11, <core::int>[5, 6, 0, 3, 7]);
self::test(12, new self::Class::•(1, 0));
self::test(12, new self::Class::•(1, 1));
self::test(12, new self::Class::•(1, 2));
self::test(13, new self::Class::•(0, 2));
self::test(13, new self::Class::•(2, 2));
self::test(14, new self::Class::•(3, 4));
self::test(15, new self::Class::•(3, 5));
self::test(15, new self::Class::•(4, 5));
self::test(16, "foo");
self::test(17, ({e: "baz"}));
self::test(0, ({e: "bar"}));
self::test(18, <core::int, core::int>{5: 16});
self::test(18, <core::int, core::int>{5: 17});
self::test(19, <core::bool>[true]);
self::test(19, <core::String>["foo"]);
self::test(20, true);
self::test(20, false);
self::test(21, <dynamic, dynamic>{});
self::test(22, <core::int, core::int>{0: 0});
self::test(22, <core::int, core::int>{0: 1});
self::test(0, <core::int, core::String>{0: "foo"});
self::test(23, <core::int, core::String>{1: "foo"});
self::test(23, <core::int, core::String>{1: "foo", 2: "bar"});
self::test(0, <core::int, core::int>{1: 0});
self::test(24, <core::int, core::String>{2: "foo"});
self::test(24, <core::int, core::int>{2: 0});
self::test(25, <core::int, core::int>{3: 0});
self::test(0, <core::int, core::String>{3: "foo"});
self::test(26, (0, 1));
self::test(27, ({a: 0, b: 1}));
self::test(27, ({a: 0, b: "foo"}));
self::test(28, ({c: 0, d: 1}));
self::test(28, ({c: 0, d: 2}));
self::test(0, ({c: 0, d: "foo"}));
core::print("success");
}
static method expect(dynamic expected, dynamic actual) → dynamic {
core::print("${expected} = ${actual} ?");
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) {
throw "Expected ${expected}, actual ${actual}";
}
}
constants {
#C1 = 1
#C2 = 3
#C3 = 5
#C4 = 6
#C5 = 7
#C6 = 8
#C7 = 2
#C8 = 4
#C9 = "foo"
#C10 = "bar"
#C11 = 16
#C12 = 0
}