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

class A extends core::Object implements self::B {
  default constructor •() → void
    : super core::Object::•()
    ;
  set x(core::int value) → void {}
}
abstract class B extends core::Object implements self::C {
  default constructor •() → void
    : super core::Object::•()
    ;
  abstract set x(core::int value) → void;
}
abstract class C extends core::Object {
  default constructor •() → void
    : super core::Object::•()
    ;
  abstract set x(core::int value) → void;
}
static method main() → dynamic {}
