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

abstract class A extends core::Object {
  synthetic constructor •() → self::A
    : 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 •(dynamic x) → self::B
    : self::B::x = x, super self::A::•()
    ;
}
static method main() → dynamic {}
