XXX_NAME ops should affect varnames
varnames should list all the local variables (with arguments first).
The XXX_NAME ops typically occur at the module level and assignment
ops should create locals.
diff --git a/Lib/compiler/pyassem.py b/Lib/compiler/pyassem.py
index 0684623..3063b5b 100644
--- a/Lib/compiler/pyassem.py
+++ b/Lib/compiler/pyassem.py
@@ -491,9 +491,12 @@
_convert_STORE_FAST = _convert_LOAD_FAST
_convert_DELETE_FAST = _convert_LOAD_FAST
- def _convert_NAME(self, arg):
+ def _convert_LOAD_NAME(self, arg):
return self._lookupName(arg, self.names)
- _convert_LOAD_NAME = _convert_NAME
+
+ def _convert_NAME(self, arg):
+ self._lookupName(arg, self.varnames)
+ return self._lookupName(arg, self.names)
_convert_STORE_NAME = _convert_NAME
_convert_DELETE_NAME = _convert_NAME
_convert_IMPORT_NAME = _convert_NAME