class A<T> {
  A.internal();
  factory A.a() = B<T>.a;
  factory A.b() = B<C1>.a;
  factory A.c() = Missing;
}

class B<S> extends A<S> {
  B.internal() : super.internal();
  factory B.a() = C<S>;
  factory B.b() = C<C2>;
}

class C<U> extends B<U> {
  C() : super.internal();
}

class C1 {}

class C2 {}

class C3 {}

main() {}
