private static boolean match(@NotNull PyParamSpecType expected, @Nullable PyType actual, @NotNull MatchContext context) {
    if (actual == null) return true;
    if (!(actual instanceof PyParamSpecType callableActual)) return false;
    final var parameters = callableActual.getParameters();
    if (parameters == null) return false;
    context.mySubstitutions.paramSpecs.put(expected, expected.withParameters(parameters, context.context));
    return true;
  }
private static boolean match(@NotNull PyParamSpecType expected, @Nullable PyType actual, @NotNull MatchContext context)