private static void inspectPyArgumentList(@NotNull PyArgumentList node,
                                            @NotNull ProblemsHolder holder,
                                            @NotNull PyResolveContext resolveContext) {
    if (node.getParent() instanceof PyClass) return; // `(object)` in `class Foo(object)` is also an arg list
    final PyCallExpression call = node.getCallExpression();
    if (call == null) return;

    final TypeEvalContext context = resolveContext.getTypeEvalContext();
    final List<PyCallExpression.PyArgumentsMapping> mappings = call.multiMapArguments(resolveContext);

    for (PyCallExpression.PyArgumentsMapping mapping : mappings) {
      final PyCallableType callableType = mapping.getCallableType();
      if (callableType != null) {
        final PyCallable callable = callableType.getCallable();
        if (callable instanceof PyFunction function) {

          // Decorate functions may have different parameter lists. We don't match arguments with parameters of decorators yet
          if (PyKnownDecoratorUtil.hasUnknownOrChangingSignatureDecorator(function, context) ||
              decoratedClassInitCall(call.getCallee(), function, resolveContext)) {
            return;
          }

          if (objectMethodCallViaSuper(call, function)) return;
        }
      }
    }

    highlightUnexpectedArguments(node, holder, mappings, context);
    highlightUnfilledParameters(node, holder, mappings, context);
    highlightStarArgumentTypeMismatch(node, holder, context);
  }
private static void inspectPyArgumentList(@NotNull PyArgumentList node,
                                            @NotNull ProblemsHolder holder,
                                            @NotNull PyResolveContext resolveContext)