// @dart = 2.9
class SuperClass {
  void set setter(Object o) {}
}

abstract class Class extends SuperClass {
  void set setter(covariant int o);
}

class SubClass extends Class {
  void set setter(covariant int o) {}
}

test() {}
main() {}
