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