late int;
?
lateTopLevelField;
class Class<T> {
  static late int;
  operator? (){}
  lateStaticField1;
  static late int;
  operator? (){}
  lateStaticField2;
  static staticMethod() {}
  late int;
  operator? (){}
  lateInstanceField;
  late T;
  operator? (){}
  lateGenericInstanceField;
  instanceMethod(T? value) {}
}
extension Extension<T> (){}
on Class<T> (){}
main() {}
expect(expected, actual) {}
throws(f(), String message) {}
