scripts: Reverted del to resolve shadowed builtins

I don't know how I completely missed that this doesn't actually work!

Using del _does_ work in Python's repl, but it makes sense the repl may
differ from actual function execution in this case.

The problem is Python still thinks the relevant builtin is a local
variables after deletion, raising an UnboundLocalError instead of
performing a global lookup. In theory this would work if the variable
could be made global, but since global/nonlocal statements are lifted,
Python complains with "SyntaxError: name 'list' is parameter and
global".

And that's A-Ok! Intentionally shadowing language builtins already puts
this code deep into ugly hacks territory.
This commit is contained in:
Christopher Haster
2025-05-15 14:10:36 -05:00
parent 48c1a016a0
commit 55ea13b994
20 changed files with 70 additions and 36 deletions
+3 -2
View File
@@ -290,8 +290,9 @@ def main(tags, *,
hex=False,
input=None,
word_bits=32):
list_ = list; del list
hex_ = hex; del hex
import builtins
list_, list = list, builtins.list
hex_, hex = hex, builtins.hex
# list all known tags
if list_: