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

abstract class A extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  abstract get x() → core::int;
  set x(core::double value) → void {}
}
class B extends self::A {
  final field core::int x;
  constructor •(core::int x) → void
    : self::B::x = x, super self::A::•()
    ;
}
static method main() → dynamic {}
