keyword-only arguments require __Pyx_GetStarArgs() function
authorStefan Behnel <scoder@users.berlios.de>
Wed, 19 Dec 2007 09:28:51 +0000 (10:28 +0100)
committerStefan Behnel <scoder@users.berlios.de>
Wed, 19 Dec 2007 09:28:51 +0000 (10:28 +0100)
Cython/Compiler/Nodes.py

index 1689e564d3043e12128e7c3bd265fdf38dc15d64..cff1b93c4c2031c36c633c0f88871cb9b8a2fcf6 100644 (file)
@@ -960,7 +960,7 @@ class DefNode(FuncDefNode):
         self.declare_pyfunction(env)
         self.analyse_signature(env)
         self.return_type = self.entry.signature.return_type()
-        if self.star_arg or self.starstar_arg:
+        if self.star_arg or self.starstar_arg or self.num_kwonly_args > 0:
             env.use_utility_code(get_starargs_utility_code)
     
     def analyse_signature(self, env):
@@ -1251,7 +1251,7 @@ class DefNode(FuncDefNode):
                 code.putln(error_return_code)
 
     def put_stararg_decrefs(self, code):
-        if self.star_arg or self.starstar_arg:
+        if self.star_arg or self.starstar_arg or self.num_kwonly_args > 0:
             code.put_xdecref(Naming.args_cname, py_object_type)
             code.put_xdecref(Naming.kwds_cname, py_object_type)