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