def visit_Call(self, call):
        func_explanation, func = self.visit(call.func)
        arg_explanations = []
        ns = {"__exprinfo_func" : func}
        arguments = []
        for arg in call.args:
            arg_explanation, arg_result = self.visit(arg)
            if isinstance(arg, _Starred):
                arg_name = "__exprinfo_star"
                ns[arg_name] = arg_result
                arguments.append("*%s" % (arg_name,))
                arg_explanations.append("*%s" % (arg_explanation,))
            else:
                arg_name = "__exprinfo_%s" % (len(ns),)
                ns[arg_name] = arg_result
                arguments.append(arg_name)
                arg_explanations.append(arg_explanation)
        for keyword in call.keywords:
            arg_explanation, arg_result = self.visit(keyword.value)
            if keyword.arg:
                arg_name = "__exprinfo_%s" % (len(ns),)
                keyword_source = "%s=%%s" % (keyword.arg)
                arguments.append(keyword_source % (arg_name,))
                arg_explanations.append(keyword_source % (arg_explanation,))
            else:
                arg_name = "__exprinfo_kwds"
                arguments.append("**%s" % (arg_name,))
                arg_explanations.append("**%s" % (arg_explanation,))

            ns[arg_name] = arg_result

        if getattr(call, 'starargs', None):
            arg_explanation, arg_result = self.visit(call.starargs)
            arg_name = "__exprinfo_star"
            ns[arg_name] = arg_result
            arguments.append("*%s" % (arg_name,))
            arg_explanations.append("*%s" % (arg_explanation,))

        if getattr(call, 'kwargs', None):
            arg_explanation, arg_result = self.visit(call.kwargs)
            arg_name = "__exprinfo_kwds"
            ns[arg_name] = arg_result
            arguments.append("**%s" % (arg_name,))
            arg_explanations.append("**%s" % (arg_explanation,))
        args_explained = ", ".join(arg_explanations)
        explanation = "%s(%s)" % (func_explanation, args_explained)
        args = ", ".join(arguments)
        source = "__exprinfo_func(%s)" % (args,)
        co = self._compile(source)
        try:
            result = self.frame.eval(co, **ns)
        except Exception:
            raise Failure(explanation)
        pattern = "%s\n{%s = %s\n}"
        rep = self.frame.repr(result)
        explanation = pattern % (rep, rep, explanation)
        return explanation, result
dataset/ETHPy150Open pytest-dev/pytest/_pytest/assertion/reinterpret.py/DebugInterpreter.visit_Call/original