self.keyword_args.analyse_types(env)
if self.starstar_arg:
self.starstar_arg.analyse_types(env)
- self.function = self.function.coerce_to_pyobject(env)
+ if self.function.type is not py_object_type:
+ if hasattr(self.function, 'entry') and not self.function.entry.as_variable:
+ error(self.pos, "Keyword arguments not allowed in cdef functions.")
+ else:
+ self.function = self.function.coerce_to_pyobject(env)
self.positional_args = \
self.positional_args.coerce_to_pyobject(env)
if self.starstar_arg:
--- /dev/null
+cdef some_function(x, y):
+ pass
+
+cdef class A:
+ cdef some_method(self, x, y=1):
+ pass
+
+some_function(1, 2)
+some_function(1, y=2)
+
+cdef A a = A()
+a.some_method(1)
+a.some_method(1, 2)
+a.some_method(1, y=2)
+
+_ERRORS = u"""
+:9:13: Keyword arguments not allowed in cdef functions.
+:14:13: Keyword arguments not allowed in cdef functions.
+"""