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) { }
