class Super1 {
  void call() {}
}

class Class1 extends Super1 {
  void method() {}
}

class Super2 {
  int call(int a, [int? b]) => a;
}

class Class2 extends Super2 {
  void method() {}
}

class Super3 {
  int call(int a, {int? b, int? c}) => a;
}

class Class3 extends Super3 {
  void method() {}
}

class Super4 {
  T call<T>(T a) => a;
}

class Class4 extends Super4 {
  void method() {}
}

class Super5 {
  int Function(int) get call => (int a) => a;
}

class Class5 extends Super5 {
  void test() {}
  void method() {}
}

class Super6 {
  int Function(int) call = (int a) => a;
}

class Class6 extends Super6 {
  void test() {}
  void method() {}
}

class Super7 {
  void set call(int Function(int) value) {}
}

class Class7 extends Super7 {
  void test() {}
}

class Super8 {}

class Class8 extends Super8 {
  void test() {}
}

main() {}
