Fix AST rewriting with starred expressions in function calls
This commit is contained in:
parent
26e7532756
commit
d4789f1ac4
|
@ -769,9 +769,6 @@ class AssertionRewriter(ast.NodeVisitor):
|
||||||
new_kwargs = []
|
new_kwargs = []
|
||||||
for arg in call.args:
|
for arg in call.args:
|
||||||
res, expl = self.visit(arg)
|
res, expl = self.visit(arg)
|
||||||
if type(arg) is ast.Starred:
|
|
||||||
arg_expls.append("*" + expl)
|
|
||||||
else:
|
|
||||||
arg_expls.append(expl)
|
arg_expls.append(expl)
|
||||||
new_args.append(res)
|
new_args.append(res)
|
||||||
for keyword in call.keywords:
|
for keyword in call.keywords:
|
||||||
|
@ -789,6 +786,11 @@ class AssertionRewriter(ast.NodeVisitor):
|
||||||
outer_expl = "%s\n{%s = %s\n}" % (res_expl, res_expl, expl)
|
outer_expl = "%s\n{%s = %s\n}" % (res_expl, res_expl, expl)
|
||||||
return res, outer_expl
|
return res, outer_expl
|
||||||
|
|
||||||
|
def visit_Starred(self, starred):
|
||||||
|
# From Python 3.5, a Starred node can appear in a function call
|
||||||
|
res, expl = self.visit(starred.value)
|
||||||
|
return starred, '*' + expl
|
||||||
|
|
||||||
def visit_Call_legacy(self, call):
|
def visit_Call_legacy(self, call):
|
||||||
"""
|
"""
|
||||||
visit `ast.Call nodes on 3.4 and below`
|
visit `ast.Call nodes on 3.4 and below`
|
||||||
|
|
Loading…
Reference in New Issue