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

class C extends core::Object {
  field core::int? f = null;
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
}
static method test(dynamic x) → dynamic {
  #L1:
  {
    final synthesized dynamic #0#0 = x;
    synthesized core::int? #0#2;
    synthesized core::bool #0#2#isSet = false;
    {
      hoisted core::int f;
      if(#0#0 is self::C && (!((#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t1 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?}) == null) && (let final core::int #t2 = f = let core::int? #t3 = #0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t4 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?} in #t3 == null ?{core::int} #t3 as{Unchecked} core::int : #t3{core::int} in true))) {
        {
          break #L1;
        }
      }
    }
  }
}
