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

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