library;
//
// Problems in library:
//
// pkg/front_end/testcases/cycles.dart:5:7: Error: 'A' is a supertype of itself.
// class A implements C {}
//       ^
//
// pkg/front_end/testcases/cycles.dart:7:7: Error: 'B' is a supertype of itself.
// class B extends A {}
//       ^
//
// pkg/front_end/testcases/cycles.dart:9:7: Error: 'C' is a supertype of itself.
// class C extends B implements D {}
//       ^
//
import self as self;
import "dart:core" as core;

class A extends core::Object {
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
}
class B extends core::Object {
  synthetic constructor •() → self::B
    : super core::Object::•()
    ;
}
class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
}
class D extends core::Object {
  synthetic constructor •() → self::D
    : super core::Object::•()
    ;
}
static method main() → dynamic {
  core::print(new self::A::•());
  core::print(new self::B::•());
  core::print(new self::C::•());
  core::print(new self::D::•());
}
