cython-devel

changeset 2687:76a814a1fc57

Fix bug in handling of environment directives.
author Robert Bradshaw <robertwb@math.washington.edu>
date Sat Nov 21 16:28:04 2009 -0800 (2 years ago)
parents c03a49d55e04
children 4e489685efbdfae19937e494e8413f93ff37
files Cython/Compiler/Nodes.py Cython/Compiler/ParseTreeTransforms.py
line diff
1.1 --- a/Cython/Compiler/Nodes.py Sat Nov 21 16:27:12 2009 -0800 1.2 +++ b/Cython/Compiler/Nodes.py Sat Nov 21 16:28:04 2009 -0800 1.3 @@ -1379,6 +1379,7 @@ 1.4 if not env.is_module_scope or Options.lookup_module_cpdef: 1.5 self.override = OverrideCheckNode(self.pos, py_func = self.py_func) 1.6 self.body = StatListNode(self.pos, stats=[self.override, self.body]) 1.7 + self.create_local_scope(env) 1.8 1.9 def call_self_node(self, omit_optional_args=0, is_module_scope=0): 1.10 import ExprNodes 1.11 @@ -1706,6 +1707,7 @@ 1.12 self.declare_pyfunction(env) 1.13 self.analyse_signature(env) 1.14 self.return_type = self.entry.signature.return_type() 1.15 + self.create_local_scope(env) 1.16 1.17 def analyse_signature(self, env): 1.18 any_type_tests_needed = 0
2.1 --- a/Cython/Compiler/ParseTreeTransforms.py Sat Nov 21 16:27:12 2009 -0800 2.2 +++ b/Cython/Compiler/ParseTreeTransforms.py Sat Nov 21 16:28:04 2009 -0800 2.3 @@ -708,7 +708,7 @@ 2.4 2.5 def visit_FuncDefNode(self, node): 2.6 self.seen_vars_stack.append(set()) 2.7 - lenv = node.create_local_scope(self.env_stack[-1]) 2.8 + lenv = node.local_scope 2.9 node.body.analyse_control_flow(lenv) # this will be totally refactored 2.10 node.declare_arguments(lenv) 2.11 for var, type_node in node.directive_locals.items():