library;
//
// Problems in library:
//
// pkg/front_end/testcases/constructor_cycle.dart:7:18: Error: Redirecting constructers can't be cyclic.
// Try to have all constructors eventually redirect to a non-redirecting constructor.
//   A.bar() : this.foo();
//                  ^^^
//
// pkg/front_end/testcases/constructor_cycle.dart:9:9: Error: Redirecting constructers can't be cyclic.
// Try to have all constructors eventually redirect to a non-redirecting constructor.
//   A() : this();
//         ^^^^
//
import self as self;
import "dart:core" as core;

class A extends core::Object {
  constructor foo() → self::A
    : this self::A::bar()
    ;
  constructor bar() → self::A
    : this self::A::foo()
    ;
  constructor baz() → self::A
    : this self::A::foo()
    ;
  constructor •() → self::A
    : this self::A::•()
    ;
}
static method main() → dynamic {}
