class A1 {
  int _instanceField;
  int getInstanceField() => _instanceField;
  void setInstanceField(int value) {}
  static int _staticField = 0;
  static int getStaticField() => _staticField;
  static void setStaticField(int value) {}
}

extension A2 on A1 {
  int get instanceProperty => getInstanceField();
  void set instanceProperty(int value) {}
  int operator +(int value) {}
  int operator -(int value) {}
  int operator -() {}
  static int staticField = A1.getStaticField();
  static int get staticProperty => A1.getStaticField();
  static void set staticProperty(int value) {}
}

main() {}
