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

class A extends core::Object {
  synthetic constructor •() → self::A*
    : super core::Object::•()
    ;
}
class B extends self::A {
  synthetic constructor •() → self::B*
    : super self::A::•()
    ;
}
class C extends core::Object {
  synthetic constructor •() → self::C*
    : super core::Object::•()
    ;
  method f1(covariant self::A* x) → void {}
  method f2(self::A* x) → void {}
  method f3(covariant self::A* x) → void {}
  method f4(self::A* x) → void {}
  method f5(covariant self::A* x) → void {}
  method f6(covariant self::B* x) → void {}
}
class D extends self::C {
  synthetic constructor •() → self::D*
    : super self::C::•()
    ;
  method f1(covariant self::B* x) → void {}
  method f2(covariant self::B* x) → void {}
  method f3(covariant self::B* x) → void {}
  method f4(self::B* x) → void {}
  method f5(covariant core::String* x) → void {}
  method f6(covariant self::A* x) → void {}
}
static method main() → dynamic {}
