From 0ea50f346d7cf6aecea4ddab65af85c936f6693b Mon Sep 17 00:00:00 2001 From: Vitja Makarov <vitja.makarov@gmail.com> Date: Sat, 13 Aug 2011 19:30:44 +0400 Subject: [PATCH] Don't try to create generator closure for c[p]def functions --- Cython/Compiler/ParseTreeTransforms.py | 2 +- tests/errors/e_cdef_yield.pyx | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 tests/errors/e_cdef_yield.pyx diff --git a/Cython/Compiler/ParseTreeTransforms.py b/Cython/Compiler/ParseTreeTransforms.py index 2ce2098fb..4371580b1 100644 --- a/Cython/Compiler/ParseTreeTransforms.py +++ b/Cython/Compiler/ParseTreeTransforms.py @@ -1885,7 +1885,7 @@ class MarkClosureVisitor(CythonTransform): return node def visit_CFuncDefNode(self, node): - self.visit_FuncDefNode(node) + self.visitchildren(node) if node.needs_closure: error(node.pos, "closures inside cdef functions not yet supported") return node diff --git a/tests/errors/e_cdef_yield.pyx b/tests/errors/e_cdef_yield.pyx new file mode 100644 index 000000000..645919fb9 --- /dev/null +++ b/tests/errors/e_cdef_yield.pyx @@ -0,0 +1,12 @@ +# mode: error + +cdef cdef_yield(): + yield + +cpdef cpdef_yield(): + yield + +_ERRORS = u""" +4:4: 'yield' not supported here +7:4: 'yield' not supported here +""" -- 2.30.9