class A {
  final int foo;
  const A(this.foo);
}

class B extends A {
  const B(int foo) : super(foo);
}

class C extends B {
  const C(int foo) : super(foo);
}

class D extends B {
  const D(int foo) : super(foo);
  bool operator ==(dynamic other) => identical(this, other);
}

bar(B b) {}
main() {}
