diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-04-27 02:29:40 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-04-27 02:29:40 (GMT) |
commit | ddc4fd03b1eadeab65f8e0dbf5b6f386ed419fbc (patch) | |
tree | 288c1648ee28f097444e9926b037e0295df0c71b /Lib/test | |
parent | 960d948e7ce536eb30b69add0c6fc2dc31c90a8e (diff) | |
download | cpython-ddc4fd03b1eadeab65f8e0dbf5b6f386ed419fbc.zip cpython-ddc4fd03b1eadeab65f8e0dbf5b6f386ed419fbc.tar.gz cpython-ddc4fd03b1eadeab65f8e0dbf5b6f386ed419fbc.tar.bz2 |
Fix 2.1 nested scopes crash reported by Evan Simpson
The new test case demonstrates the bug. Be more careful in
symtable_resolve_free() to add a var to cells or frees only if it
won't be added under some other rule.
XXX Add new assertion that will catch this bug.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/output/test_scope | 1 | ||||
-rw-r--r-- | Lib/test/test_scope.py | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/Lib/test/output/test_scope b/Lib/test/output/test_scope index af7fe31..fcd4e7a 100644 --- a/Lib/test/output/test_scope +++ b/Lib/test/output/test_scope @@ -17,3 +17,4 @@ test_scope 16. check leaks 17. class and global 18. verify that locals() works +19. var is bound and free in class diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py index 358c45a..c42d881 100644 --- a/Lib/test/test_scope.py +++ b/Lib/test/test_scope.py @@ -436,3 +436,14 @@ verify(d.has_key('h')) del d['h'] verify(d == {'x': 2, 'y': 7, 'w': 6}) +print "19. var is bound and free in class" + +def f(x): + class C: + def m(self): + return x + a = x + return C + +inst = f(3)() +verify(inst.a == inst.m()) |