library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class A extends core::Object {
  field core::int? _#A#x;
  field core::bool _#A#x#isSet;
  field core::int? _#A#y;
  field core::bool _#A#y#isSet;
  synthetic constructor •() → self::A
    ;
  get x() → core::int;
  set x(core::int x#param) → void;
  get y() → core::int?;
  set y(core::int? y#param) → void;
}
class B extends self::A {
  synthetic constructor •() → self::B
    ;
  get x() → core::int
    ;
  get y() → core::int?
    ;
}
class C extends self::A {
  field core::int? _#C#x;
  field core::bool _#C#x#isSet;
  field core::int? _#C#y;
  field core::bool _#C#y#isSet;
  synthetic constructor •() → self::C
    ;
  get x() → core::int;
  get y() → core::int?;
}
static method main() → dynamic
  ;
static method expect(dynamic expected, dynamic actual) → dynamic
  ;
static method throws(() → dynamic f, core::String message) → dynamic
  ;
