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():
