commit | 7889107be7cb5a28aabcdfa33778bdce3e9b5c27 | [log] [tgz] |
---|---|---|
author | Jeremy Hylton <jeremy@alum.mit.edu> | Thu Mar 01 06:09:34 2001 +0000 |
committer | Jeremy Hylton <jeremy@alum.mit.edu> | Thu Mar 01 06:09:34 2001 +0000 |
tree | 5fd51200881acad3410e05b2eb52e7204e23a8ec | |
parent | a52e8fe49a625d13d89967bc17adeb71520bf3d0 [diff] |
Fix core dump in example from Samuele Pedroni: from __future__ import nested_scopes x=7 def f(): x=1 def g(): global x def i(): def h(): return x return h() return i() return g() print f() print x This kind of code didn't work correctly because x was treated as free in i, leading to an attempt to load x in g to make a closure for i. Solution is to make global decl apply to nested scopes unless their is an assignment. Thus, x in h is global.