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

class B extends core::Object {
  synthetic constructor •() → self::B*
    : super core::Object::•()
    ;
}
class C extends self::B {
  field dynamic z = null;
  synthetic constructor •() → self::C*
    : super self::B::•()
    ;
}
static method test(self::B* x) → void {
  dynamic y = x is self::C* ? x : new self::C::•();
  core::print(y.z);
}
static method main() → dynamic {}
