var result;
extension Extension on int {
  int instanceMethod() => 1;
  int instanceMethod() => 2;
  int get instanceGetter => 1;
  int get instanceGetter => 2;
  void set instanceSetter(value) {}
  void set instanceSetter(value) {}
  int instanceField = 1;
  int instanceField = 2;
  int instanceFieldAndSetter1 = 1;
  void set instanceFieldAndSetter1(int value) {}
  void set instanceFieldAndSetter2(int value) {}
  int instanceFieldAndSetter2 = 1;
  late final int instanceLateFinalFieldAndSetter1;
  void set instanceLateFinalFieldAndSetter1(int value) {}
  void set instanceLateFinalFieldAndSetter2(int value) {}
  late final int instanceLateFinalFieldAndSetter2;
  final int instanceDuplicateFieldAndSetter = 1;
  final int instanceDuplicateFieldAndSetter = 2;
  void set instanceDuplicateFieldAndSetter(int value) {}
  final int instanceFieldAndDuplicateSetter = 1;
  void set instanceFieldAndDuplicateSetter(int value) {}
  void set instanceFieldAndDuplicateSetter(int value) {}
  final int instanceDuplicateFieldAndDuplicateSetter = 1;
  final int instanceDuplicateFieldAndDuplicateSetter = 2;
  void set instanceDuplicateFieldAndDuplicateSetter(int value) {}
  void set instanceDuplicateFieldAndDuplicateSetter(int value) {}
  int instanceMethodAndSetter1() => 1;
  void set instanceMethodAndSetter1(int value) {}
  void set instanceMethodAndSetter2(int value) {}
  int instanceMethodAndSetter2() => 1;
}
test() {}
main() {}
expect(expected, actual) {}
throws(dynamic Function() f) {}
