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

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