// @dart = 2.9
import './forwarder_propagation_lib.dart';

abstract class A {
  void set foo(int value);
  int get bar;
  void baz(int x, {String y, double z});
}

class B implements A {
  noSuchMethod(_) {}
}

class C extends B {}

class E implements D {}

class F extends E {}

main() {}
