diff --git a/Cython/Compiler/Nodes.py b/Cython/Compiler/Nodes.py index fe91abdd5f129711d1f686bde639134c04663a63..729b4e6f4431d12fabd141bcd536f419568145d9 100644 --- a/Cython/Compiler/Nodes.py +++ b/Cython/Compiler/Nodes.py @@ -1805,13 +1805,14 @@ class DefNode(FuncDefNode): # raise an error if not all keywords were read code.putln('if (unlikely(kw_args > 0)) {') - code.put('if (!__Pyx_CheckKeywords(%s, "%s", %s)) ' % ( + # __Pyx_CheckKeywords() this does more than strictly + # necessary, but this is not performance critical at all + code.put('__Pyx_CheckKeywords(%s, "%s", %s); ' % ( Naming.kwds_cname, self.name.utf8encode(), Naming.kwdlist_cname)) code.putln(code.error_goto(self.pos)) code.putln('}') # convert arg values to their final type and assign them - default_seen = False for i, arg in enumerate(tuple(positional_args) + tuple(kw_only_args)): if arg.default: code.putln("if (values[%d]) {" % i) @@ -1827,7 +1828,7 @@ class DefNode(FuncDefNode): required_arg = arg break code.putln('} else {') - code.putln('__Pyx_RaiseKeywordRequired("%s", "%s");' % ( + code.put('__Pyx_RaiseKeywordRequired("%s", "%s"); ' % ( self.name.utf8encode(), required_arg.name.utf8encode())) code.putln(code.error_goto(self.pos)) code.putln('}')