late int ;
lateTopLevelField;
late ;
final int lateFinalTopLevelField;
late ;
final int lateFinalTopLevelFieldWithInit = 0;
class Class {
  late int ;
  lateInstanceField;
  late ;
  final int lateFinalInstanceField1;
  late ;
  final int lateFinalInstanceField2;
  late ;
  final int lateFinalInstanceFieldWithInit = 0;
  late Class ;
  lateInstanceFieldThis = this;
  late ;
  final Class lateFinalInstanceFieldThis = this;
  static late int ;
  lateStaticField;
  static late ;
  final int lateFinalStaticField1;
  static late ;
  final int lateFinalStaticField2;
  static late ;
  final int lateFinalStaticFieldWithInit = 0;
  method() {}
  methodWithErrors() {}
}
main() {}
noErrors() {}
errors() {}
