// Formatted problems:
//
// pkg/front_end/testcases/cycles.dart:5:7: Error: 'A' is a supertype of itself via 'B', 'C'.
// class A implements C {}
//       ^
//
// pkg/front_end/testcases/cycles.dart:7:7: Error: 'B' is a supertype of itself via 'A', 'C'.
// class B extends A {}
//       ^
//
// pkg/front_end/testcases/cycles.dart:9:7: Error: 'C' is a supertype of itself via 'A', 'B'.
// class C extends B implements D {}
//       ^

// Unhandled errors:
//
// pkg/front_end/testcases/cycles.dart:5:7: Error: 'A' is a supertype of itself via 'B', 'C'.
// class A implements C {}
//       ^
//
// pkg/front_end/testcases/cycles.dart:7:7: Error: 'B' is a supertype of itself via 'A', 'C'.
// class B extends A {}
//       ^
//
// pkg/front_end/testcases/cycles.dart:9:7: Error: 'C' is a supertype of itself via 'A', 'B'.
// class C extends B implements D {}
//       ^

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

class A extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class B extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class C extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class D extends core::Object {
  synthetic constructor •() → void
    : 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::•());
}
