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

static method test(dynamic x) → dynamic {
  #L1:
  {
    final synthesized dynamic #0#0 = x;
    synthesized dynamic #0#4;
    synthesized core::bool #0#4#isSet = false;
    {
      if(#0#0 is core::Map<dynamic, dynamic> && (!((#0#4#isSet ?{dynamic} #0#4{dynamic} : let final core::bool #t1 = #0#4#isSet = true in #0#4 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic}) == null) || null is dynamic && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t2 = (#0#4#isSet ?{dynamic} #0#4{dynamic} : let final core::bool #t3 = #0#4#isSet = true in #0#4 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic}) as core::int in #C2 =={core::num::==}{(core::Object) → core::bool} (#0#4#isSet ?{dynamic} #0#4{dynamic} : let final core::bool #t4 = #0#4#isSet = true in #0#4 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic}) as core::int)) {
        {
          break #L1;
        }
      }
    }
  }
}

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

Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///cast_inside_map_pattern.dart:7:14 -> BoolConstant(true)
Extra constant evaluation: evaluated: 40, effectively constant: 1
