Hi!
I'm now trying to implement nested classes and found some errors in code.
genv = env
while genv.is_py_class_scope or genv.is_c_class_scope:
genv = env.outer_scope
Can cause infinty loop. Small patch is attached.
vitja.
diff -r 8ba633d4aea7 Cython/Compiler/Nodes.py
--- a/Cython/Compiler/Nodes.py Mon Nov 15 12:48:15 2010 +0100
+++ b/Cython/Compiler/Nodes.py Tue Nov 16 17:35:14 2010 +0300
@@ -1177,7 +1177,7 @@
def create_local_scope(self, env):
genv = env
while genv.is_py_class_scope or genv.is_c_class_scope:
- genv = env.outer_scope
+ genv = genv.outer_scope
if self.needs_closure:
lenv = ClosureScope(name=self.entry.name,
outer_scope = genv,
@@ -3002,8 +3002,8 @@
def create_scope(self, env):
genv = env
- while env.is_py_class_scope or env.is_c_class_scope:
- env = env.outer_scope
+ while genv.is_py_class_scope or genv.is_c_class_scope:
+ genv = genv.outer_scope
cenv = self.scope = PyClassScope(name = self.name, outer_scope = genv)
return cenv
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev