micropython/py
Damien George 9201f46cc8 py/compile: Fix case of eager implicit conversion of local to nonlocal.
This ensures that implicit variables are only converted to implicit
closed-over variables (nonlocals) at the very end of the function scope.
If variables are closed-over when first used (read from, as was done prior
to this commit) then this can be incorrect because the variable may be
assigned to later on in the function which means they are just a plain
local, not closed over.

Fixes issue #4272.
2018-10-28 00:33:08 +11:00
..
argcheck.c
asmarm.c py/asmarm: Simplify asm_arm_bl_ind to only load via index, not literal. 2018-10-13 15:16:33 +11:00
asmarm.h py/emitnative: Remove unused ptr argument from ASM_CALL_IND macro. 2018-10-13 15:16:33 +11:00
asmbase.c
asmbase.h
asmthumb.c py/asmthumb: Remove unused fun_ptr arg from asm_thumb_bl_ind function. 2018-10-13 15:16:33 +11:00
asmthumb.h py/emitnative: Remove unused ptr argument from ASM_CALL_IND macro. 2018-10-13 15:16:33 +11:00
asmx64.c py/emitnative: Load native fun table ptr from const table for all archs. 2018-10-13 15:16:33 +11:00
asmx64.h py/emitnative: Remove unused ptr argument from ASM_CALL_IND macro. 2018-10-13 15:16:33 +11:00
asmx86.c py/emitnative: Load native fun table ptr from const table for all archs. 2018-10-13 15:16:33 +11:00
asmx86.h py/emitnative: Remove unused ptr argument from ASM_CALL_IND macro. 2018-10-13 15:16:33 +11:00
asmxtensa.c py/emitnative: Load native fun table ptr from const table for all archs. 2018-10-13 15:16:33 +11:00
asmxtensa.h py/emitnative: Remove unused ptr argument from ASM_CALL_IND macro. 2018-10-13 15:16:33 +11:00
bc.c
bc.h
bc0.h
binary.c
binary.h
builtin.h
builtinevex.c
builtinhelp.c
builtinimport.c
compile.c py/compile: Fix case of eager implicit conversion of local to nonlocal. 2018-10-28 00:33:08 +11:00
compile.h
emit.h
emitbc.c
emitcommon.c py/compile: Fix case of eager implicit conversion of local to nonlocal. 2018-10-28 00:33:08 +11:00
emitglue.c
emitglue.h
emitinlinethumb.c
emitinlinextensa.c
emitnarm.c
emitnative.c py/emitnative: Put None/False/True in global native const table. 2018-10-15 00:20:49 +11:00
emitnthumb.c
emitnx64.c
emitnx86.c
emitnxtensa.c
formatfloat.c
formatfloat.h
frozenmod.c
frozenmod.h
gc.c
gc.h
grammar.h
lexer.c
lexer.h
makeqstrdata.py
makeqstrdefs.py
makeversionhdr.py
malloc.c
map.c
misc.h
mkenv.mk
mkrules.mk
modarray.c
modbuiltins.c
modcmath.c
modcollections.c
modgc.c
modio.c
modmath.c
modmicropython.c
modstruct.c
modsys.c
modthread.c
moduerrno.c
mpconfig.h py/objmodule: Implement PEP 562's __getattr__ for modules. 2018-10-23 11:22:50 +11:00
mperrno.h
mphal.h
mpprint.c
mpprint.h
mpstate.c
mpstate.h
mpthread.h
mpz.c
mpz.h
nativeglue.c py/emitnative: Put None/False/True in global native const table. 2018-10-15 00:20:49 +11:00
nlr.c
nlr.h
nlrsetjmp.c
nlrthumb.c
nlrx64.c
nlrx86.c
nlrxtensa.c
obj.c
obj.h
objarray.c
objarray.h
objattrtuple.c
objbool.c
objboundmeth.c
objcell.c
objclosure.c
objcomplex.c
objdeque.c
objdict.c
objenumerate.c
objexcept.c
objexcept.h
objfilter.c
objfloat.c
objfun.c
objfun.h
objgenerator.c
objgenerator.h
objgetitemiter.c
objint.c
objint.h
objint_longlong.c
objint_mpz.c
objlist.c
objlist.h
objmap.c
objmodule.c py/objmodule: Implement PEP 562's __getattr__ for modules. 2018-10-23 11:22:50 +11:00
objmodule.h
objnamedtuple.c
objnamedtuple.h
objnone.c
objobject.c
objpolyiter.c
objproperty.c
objrange.c
objreversed.c
objset.c
objsingleton.c
objslice.c
objstr.c py/objstr: Make str.count() method configurable. 2018-10-22 22:49:05 +11:00
objstr.h
objstringio.c
objstringio.h
objstrunicode.c py/objstr: Make str.count() method configurable. 2018-10-22 22:49:05 +11:00
objtuple.c
objtuple.h
objtype.c py/objtype: Remove comment about catching exc from user __getattr__. 2018-10-18 12:15:16 +11:00
objtype.h
objzip.c
opmethods.c
parse.c
parse.h
parsenum.c
parsenum.h
parsenumbase.c
parsenumbase.h
persistentcode.c
persistentcode.h
py.mk py/py.mk: When building axtls use -Wno-all to prevent all warnings. 2018-10-27 23:53:08 +11:00
pystack.c
pystack.h
qstr.c
qstr.h
qstrdefs.h
reader.c
reader.h
repl.c
repl.h
ringbuf.h
runtime.c
runtime.h
runtime0.h py/emitnative: Put None/False/True in global native const table. 2018-10-15 00:20:49 +11:00
runtime_utils.c
scheduler.c
scope.c py/compile: Fix case of eager implicit conversion of local to nonlocal. 2018-10-28 00:33:08 +11:00
scope.h py/compile: Fix case of eager implicit conversion of local to nonlocal. 2018-10-28 00:33:08 +11:00
sequence.c
showbc.c
smallint.c
smallint.h
stackctrl.c
stackctrl.h
stream.c
stream.h
unicode.c
unicode.h
vm.c
vmentrytable.h
vstr.c
warning.c