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

class C extends self::B {
  field core::int? field = null;
  synthetic constructor •() → self::C
    : super self::B::•()
    ;
}
class B extends self::A {
  synthetic constructor •() → self::B
    : super self::A::•()
    ;
  get field() → core::int?
    return throw "";
  set field(core::int? value) → void {}
}
class A extends core::Object {
  field core::int? field = self::method();
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
}
static field core::int? topLevelFieldFromA = new self::A::•().{self::A::field}{core::int?};
static field core::int? topLevelFieldFromB = new self::B::•().{self::B::field}{core::int?};
static field core::int? topLevelFieldFromC = new self::C::•().{self::C::field}{core::int?};
static method method() → core::int?
  return 0;
static method main() → dynamic {}
