class Class {
  late int ;
  field1;
  late int ;
  field2;
  late ;
  final int field3;
  late ;
  final int field4;
}
class SubClass extends Class {
  late int ;
  field1;
  late int ;
  field2 = 0;
  late ;
  final int field3;
  late ;
  final int field4 = 0;
  int get directField1 => super.field1;
  void set directField1(int value) {}
  int get directField2 => super.field2;
  void set directField2(int value) {}
  int get directField3 => super.field3;
  int get directField4 => super.field4;
}
main() {}
expect(expected, actual) {}
throws(f(), String message) {}
