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