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

import "org-dartlang-testcase:///issue50932.dart" as self;

abstract class A extends core::Object {
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
  abstract get foo() → core::int;
}
static method test(dynamic x) → dynamic {
  {
    final synthesized dynamic #0#0 = x;
    final const synthesized core::int #0#3 = #C1;
    if(#0#0 is self::A && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{self::A}.{self::A::foo}{core::int}) {
      return 0;
    }
    else {
      return 1;
    }
  }
}

constants  {
  #C1 = 0
}
