summaryrefslogtreecommitdiff
path: root/Cython/Compiler/ParseTreeTransforms.py
diff options
context:
space:
mode:
authorRobert Bradshaw <robertwb@gmail.com>2014-07-14 22:14:05 -0700
committerRobert Bradshaw <robertwb@gmail.com>2014-07-14 22:14:05 -0700
commitdd854104cc05f998c4c32f2ef66731b7dd8d57bd (patch)
tree6915c4e76eb5117901958a857eb07b103ed4619a /Cython/Compiler/ParseTreeTransforms.py
parenta9d1186dc7c2e8c683b409c12244a7d3d5c14713 (diff)
parentede3eb9239a323ad0bb0cac1acf2094514aafe32 (diff)
downloadcython-dd854104cc05f998c4c32f2ef66731b7dd8d57bd.tar.gz
Merge branch 'master' into static
Conflicts: CHANGES.rst Cython/Compiler/Nodes.py
Diffstat (limited to 'Cython/Compiler/ParseTreeTransforms.py')
-rw-r--r--Cython/Compiler/ParseTreeTransforms.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/Cython/Compiler/ParseTreeTransforms.py b/Cython/Compiler/ParseTreeTransforms.py
index bba274fd7..26422ef33 100644
--- a/Cython/Compiler/ParseTreeTransforms.py
+++ b/Cython/Compiler/ParseTreeTransforms.py
@@ -2266,8 +2266,8 @@ class MarkClosureVisitor(CythonTransform):
def visit_CFuncDefNode(self, node):
self.visit_FuncDefNode(node)
- if node.needs_closure:
- error(node.pos, "closures inside cdef functions not yet supported")
+ if node.needs_closure and node.overridable:
+ error(node.pos, "closures inside cpdef functions not yet supported")
return node
def visit_LambdaNode(self, node):
@@ -2406,8 +2406,11 @@ class CreateClosureClasses(CythonTransform):
return node
def visit_CFuncDefNode(self, node):
- self.visitchildren(node)
- return node
+ if not node.overridable:
+ return self.visit_FuncDefNode(node)
+ else:
+ self.visitchildren(node)
+ return node
class GilCheck(VisitorTransform):