// @dart = 2.6
abstract class A {}

abstract class B {
  void foo(num x);
}

abstract class C implements B {
  void foo(covariant int x);
}

abstract class D1 implements A, C, B {
  void foo(covariant int x);
}

abstract class D3 implements A, C, B {}

abstract class D4 implements A, C, B {
  void foo(int x);
}

abstract class D5 implements A, C, B {
  void foo(num x);
}

abstract class E {
  void set foo(num x);
}

abstract class G implements E {
  void set foo(covariant int x);
}

abstract class H1 implements A, E, G {
  void set foo(covariant int x);
}

abstract class H3 implements A, E, G {}

abstract class H4 implements A, E, G {
  void set foo(int x);
}

abstract class H5 implements A, E, G {
  void set foo(num x);
}

class D2 implements A, C, B {
  void foo(covariant int x) {}
}

class H2 implements A, E, G {
  void set foo(covariant int x) {}
}

main() {}
