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? lateGenericInstanceFieldInit;
  T? initLateGenericInstanceField(T? value) {}
  final T? field;
  late
  final T? lateGenericInstanceField = initLateGenericInstanceField(field);
  Class(this.field);
  instanceMethod() {}
}
extension Extension<T> on Class<T> {
  static int? lateExtensionField1Init;
  static int? initLateExtensionField1(int value) {}
  static late ;
  final int? lateExtensionField1 = initLateExtensionField1(87);
  static int? lateExtensionField2Init;
  static int? initLateExtensionField2(int value) {}
  static late ;
  final int? lateExtensionField2 = initLateExtensionField2(42);
  static staticMethod() {}
}
main() {}
expect(expected, actual) {}
