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