abstract class B<X> {
  X bar({required X x});
  X foo(X x);
  void set baz(X x);
  void set boz(X x);
}

class A {
  int boz = 0;
  num bar({required int x}) {}
  num foo(int n) {}
  void set baz(int x) {}
}

class C extends A with B<num> {}

throws(void Function() f) {}
void main() {}
