private static void registerSingleCalleeProblem(@NotNull PyInspectionVisitor visitor,
                                                  @NotNull PyCallSiteExpression callSite,
                                                  @NotNull PyTypeCheckerInspection.AnalyzeCalleeResults calleeResults,
                                                  @NotNull TypeEvalContext context) {
    for (PyTypeCheckerInspection.AnalyzeArgumentResult argumentResult : calleeResults.getResults()) {
      if (argumentResult.isMatched()) continue;

      visitor.registerProblem(argumentResult.getArgument(), getSingleCalleeProblemMessage(argumentResult, context));
    }

    for (PyTypeCheckerInspection.UnexpectedArgumentForParamSpec unexpectedArgumentForParamSpec : calleeResults.getUnmatchedArguments()) {
      var argument = unexpectedArgumentForParamSpec.getArgument();
      var paramSpecTypeName = unexpectedArgumentForParamSpec.getParamSpecType().getVariableName();
      visitor.registerProblem(argument, PyPsiBundle.message("INSP.type.checker.unexpected.argument.from.paramspec", paramSpecTypeName));
    }

    if (callSite instanceof PyCallExpression) {
      var argumentList = ((PyCallExpression)callSite).getArgumentList();
      if (argumentList != null) {
        var rpar = PyPsiUtils.getFirstChildOfType(argumentList, PyTokenTypes.RPAR);
        if (rpar != null) {
          for (PyTypeCheckerInspection.UnfilledParameterFromParamSpec unfilledParameterFromParamSpec : calleeResults.getUnmatchedParameters()) {
            var parameterName = unfilledParameterFromParamSpec.getParameter().getName();
            var paramSpecTypeName = unfilledParameterFromParamSpec.getParamSpecType().getVariableName();
            if (parameterName != null) {
              visitor.registerProblem(rpar, PyPsiBundle.message("INSP.type.checker.unfilled.parameter.for.paramspec", parameterName, paramSpecTypeName));
            }
          }

          for (PyTypeCheckerInspection.UnfilledPositionalVararg unfilledParameterFromParamSpec : calleeResults.getUnfilledPositionalVarargs()) {
            var varargName = unfilledParameterFromParamSpec.varargName();
            var expectedTypes = unfilledParameterFromParamSpec.expectedTypes();
            visitor.registerProblem(rpar, PyPsiBundle.message("INSP.type.checker.unfilled.vararg", varargName, expectedTypes));
          }
        }
      }
    }
  }
private static void registerSingleCalleeProblem(@NotNull PyInspectionVisitor visitor,
                                                  @NotNull PyCallSiteExpression callSite,
                                                  @NotNull PyTypeCheckerInspection.AnalyzeCalleeResults calleeResults,
                                                  @NotNull TypeEvalContext context)