class A {
  var field = method();
}

class B extends A {
  get field => throw '';
  set field(value) {}
}

class C extends B {
  var field;
}

int? method() => 0;

main() {}

var topLevelFieldFromA = new A().field;

var topLevelFieldFromB = new B().field;

var topLevelFieldFromC = new C().field;
