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.
This commit is contained in:
Jeremy Hylton 2001-04-27 02:29:40 +00:00
parent 960d948e7c
commit ddc4fd03b1
3 changed files with 32 additions and 6 deletions

View file

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