diff --git a/codegen.py b/codegen.py index 3a039c0..a343081 100644 --- a/codegen.py +++ b/codegen.py @@ -420,7 +420,10 @@ def write_comma(): self.visit(arg) for keyword in node.keywords: write_comma() - self.write(keyword.arg + '=') + if keyword.arg is not None: + self.write(keyword.arg + '=') + else: + self.write('**') self.visit(keyword.value) if node.starargs is not None: write_comma() diff --git a/test.py b/test.py index 1531e09..1572ee2 100644 --- a/test.py +++ b/test.py @@ -65,6 +65,10 @@ def test_import(self): self.assertPreserved("import intertools as iterators") self.assertPreserved("from math import floor as fl, ceil as cl") - + def test_function_call(self): + self.assertPreserved("f(x, 5, x=7)") + self.assertPreserved("f(x, **{'x': 7})") + self.assertPreserved("f(x, *['x'])") + if __name__ == '__main__': unittest.main()