library;
import self as self;
import "dart:core" as core;

static method foo(dynamic x) → dynamic {
  #L1:
  {
    final synthesized dynamic #0#0 = x;
    synthesized dynamic #0#6;
    synthesized core::bool #0#6#isSet = false;
    synthesized dynamic #0#10;
    synthesized core::bool #0#10#isSet = false;
    dynamic #t1;
    {
      lowered hoisted core::int a#case#0;
      lowered hoisted core::int a#case#1;
      if(#0#0 is core::List<dynamic> && #0#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && ((#0#6#isSet ?{dynamic} #0#6{dynamic} : let final dynamic #t2 = #0#6#isSet = true in #0#6 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) is core::int && (let final dynamic #t3 = a#case#0 = (#0#6#isSet ?{dynamic} #0#6{dynamic} : let final dynamic #t4 = #0#6#isSet = true in #0#6 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::int in true)) && (let final dynamic #t5 = #t1 = a#case#0 in true) || #0#0 is core::Map<dynamic, dynamic> && (!((#0#10#isSet ?{dynamic} #0#10{dynamic} : let final dynamic #t6 = #0#10#isSet = true in #0#10 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) == null) || null is dynamic && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool}) && ((#0#10#isSet ?{dynamic} #0#10{dynamic} : let final dynamic #t7 = #0#10#isSet = true in #0#10 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int && (let final dynamic #t8 = a#case#1 = (#0#10#isSet ?{dynamic} #0#10{dynamic} : let final dynamic #t9 = #0#10#isSet = true in #0#10 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int in true)) && (let final dynamic #t10 = #t1 = a#case#1 in true)) {
        core::int a = #t1{core::int};
        {
          return a;
        }
      }
    }
    {
      {
        {
          return 0;
        }
      }
    }
  }
}

constants  {
  #C1 = 1
  #C2 = "a"
}
