int? topLevelFieldAndSetter;
void set topLevelFieldAndSetter(int? value) {}
int? topLevelFieldAndDuplicateSetter;
void set topLevelFieldAndDuplicateSetter(int? value) {}
void set topLevelFieldAndDuplicateSetter(int? value) {}
late
final int? topLevelLateFinalFieldAndSetter;
void set topLevelLateFinalFieldAndSetter(int? value) {}
late
final int? topLevelLateFinalFieldAndDuplicateSetter;
void set topLevelLateFinalFieldAndDuplicateSetter(int? value) {}
void set topLevelLateFinalFieldAndDuplicateSetter(int? value) {}
class Class {
  int? instanceFieldAndSetter;
  void set instanceFieldAndSetter(int? value) {}
  int? instanceFieldAndDuplicateSetter;
  void set instanceFieldAndDuplicateSetter(int? value) {}
  void set instanceFieldAndDuplicateSetter(int? value) {}
  late
  final int? instanceLateFinalFieldAndSetter;
  void set instanceLateFinalFieldAndSetter(int? value) {}
  late
  final int? instanceLateFinalFieldAndDuplicateSetter;
  void set instanceLateFinalFieldAndDuplicateSetter(int? value) {}
  void set instanceLateFinalFieldAndDuplicateSetter(int? value) {}
  static int? staticFieldAndSetter;
  static void set staticFieldAndSetter(int? value) {}
  static int? staticFieldAndDuplicateSetter;
  static void set staticFieldAndDuplicateSetter(int? value) {}
  static void set staticFieldAndDuplicateSetter(int? value) {}
  static late ;
  final int? staticLateFinalFieldAndSetter;
  static void set staticLateFinalFieldAndSetter(int? value) {}
  static late ;
  final int? staticLateFinalFieldAndDuplicateSetter;
  static void set staticLateFinalFieldAndDuplicateSetter(int? value) {}
  static void set staticLateFinalFieldAndDuplicateSetter(int? value) {}
  static int? staticFieldAndInstanceSetter;
  void set staticFieldAndInstanceSetter(int? value) {}
  static int? staticFieldAndInstanceDuplicateSetter;
  void set staticFieldAndInstanceDuplicateSetter(int? value) {}
  void set staticFieldAndInstanceDuplicateSetter(int? value) {}
  int? instanceFieldAndStaticSetter;
  static void set instanceFieldAndStaticSetter(int? value) {}
  int? instanceFieldAndStaticDuplicateSetter;
  static void set instanceFieldAndStaticDuplicateSetter(int? value) {}
  static void set instanceFieldAndStaticDuplicateSetter(int? value) {}
}
extension Extension on int? {
  int? extensionInstanceFieldAndSetter;
  void set extensionInstanceFieldAndSetter(int? value) {}
  int? extensionInstanceFieldAndDuplicateSetter;
  void set extensionInstanceFieldAndDuplicateSetter(int? value) {}
  void set extensionInstanceFieldAndDuplicateSetter(int? value) {}
  static int? extensionStaticFieldAndSetter;
  static void set extensionStaticFieldAndSetter(int? value) {}
  static int? extensionStaticFieldAndDuplicateSetter;
  static void set extensionStaticFieldAndDuplicateSetter(int? value) {}
  static void set extensionStaticFieldAndDuplicateSetter(int? value) {}
  static late ;
  final int? extensionStaticLateFinalFieldAndSetter;
  static void set extensionStaticLateFinalFieldAndSetter(int? value) {}
  static late ;
  final int? extensionStaticLateFinalFieldAndDuplicateSetter;
  static void set extensionStaticLateFinalFieldAndDuplicateSetter(int? value) {}
  static void set extensionStaticLateFinalFieldAndDuplicateSetter(int? value) {}
  static int? extensionStaticFieldAndInstanceSetter;
  void set extensionStaticFieldAndInstanceSetter(int? value) {}
  static int? extensionStaticFieldAndInstanceDuplicateSetter;
  void set extensionStaticFieldAndInstanceDuplicateSetter(int? value) {}
  void set extensionStaticFieldAndInstanceDuplicateSetter(int? value) {}
  int? extensionInstanceFieldAndStaticSetter;
  static void set extensionInstanceFieldAndStaticSetter(int? value) {}
  int? extensionInstanceFieldAndStaticDuplicateSetter;
  static void set extensionInstanceFieldAndStaticDuplicateSetter(int? value) {}
  static void set extensionInstanceFieldAndStaticDuplicateSetter(int? value) {}
}
test() {}
main() {}
