library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constructor_cycle.dart:7:18: Error: Redirecting constructors can't be cyclic.
// Try to have all constructors eventually redirect to a non-redirecting constructor.
//   A.bar() : this.foo();
//                  ^^^
//
// pkg/front_end/testcases/general/constructor_cycle.dart:9:9: Error: Redirecting constructors 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 {}
