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

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

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

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