abstract class CustomType extends Type {
  void call() {}
}

abstract class CustomInvocation implements Invocation {}

abstract class Class {
  CustomType get runtimeType;
  String noSuchMethod(covariant CustomInvocation invocation);
  bool operator ==(covariant Class o);
  String toString({Object o});
}

main() {}
void test(Class c1, Class? c2, Invocation invocation,
    CustomInvocation customInvocation) {}
