diff options
author | Robert Bradshaw <robertwb@gmail.com> | 2014-07-14 22:14:05 -0700 |
---|---|---|
committer | Robert Bradshaw <robertwb@gmail.com> | 2014-07-14 22:14:05 -0700 |
commit | dd854104cc05f998c4c32f2ef66731b7dd8d57bd (patch) | |
tree | 6915c4e76eb5117901958a857eb07b103ed4619a /Cython/Compiler/ParseTreeTransforms.py | |
parent | a9d1186dc7c2e8c683b409c12244a7d3d5c14713 (diff) | |
parent | ede3eb9239a323ad0bb0cac1acf2094514aafe32 (diff) | |
download | cython-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.py | 11 |
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): |