int? lateTopLevelField1Init;
int initLateTopLevelField1(int value) {}
late ;
final int lateTopLevelField1 = initLateTopLevelField1(123);
class Class<T> {
  static int? lateStaticField1Init;
  static int initLateStaticField1(int value) {}
  static late ;
  final int lateStaticField1 = initLateStaticField1(87);
  static int? lateStaticField2Init;
  static int initLateStaticField2(int value) {}
  static late ;
  final int lateStaticField2 = initLateStaticField2(42);
  static staticMethod() {}
  int? lateInstanceFieldInit;
  int initLateInstanceField(int value) {}
  late ;
  final int lateInstanceField = initLateInstanceField(16);
  T? lateGenericFieldInit;
  T initLateGenericField(T value) {}
  final T field;
  late ;
  final T lateGenericField = initLateGenericField(field);
  Class(this.field);
  instanceMethod() {}
}
extension Extension<T> (){}
on Class<T> (){}
main() {}
expect(expected, actual) {}
