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

static method foo(dynamic x) → dynamic {
  #L1:
  {
    final synthesized dynamic #0#0 = x;
    final const synthesized core::int #0#3 = #C1;
    synthesized dynamic #0#6;
    synthesized core::bool #0#6#isSet = false;
    synthesized dynamic #0#10;
    synthesized core::bool #0#10#isSet = false;
    final const synthesized core::String #0#8 = #C2;
    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 : 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 : 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 : 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 : 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 : 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"
}
