diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-11-07 10:09:27 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-11-07 10:09:27 -0800 |
commit | 1f3ed8210d45b035a8f76185587f97e147fc7402 (patch) | |
tree | da907b4c8aef4e26e84d0ec4b7ab3a827cdb57ad /etc/strict.lua | |
parent | 2b7ffea31612c16ab16735f6806195ab471ae409 (diff) | |
download | teliva-1f3ed8210d45b035a8f76185587f97e147fc7402.tar.gz |
delete some Lua 5.1 things
These are likely to suffer bitrot.
Diffstat (limited to 'etc/strict.lua')
-rw-r--r-- | etc/strict.lua | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/etc/strict.lua b/etc/strict.lua deleted file mode 100644 index 604619d..0000000 --- a/etc/strict.lua +++ /dev/null @@ -1,41 +0,0 @@ --- --- strict.lua --- checks uses of undeclared global variables --- All global variables must be 'declared' through a regular assignment --- (even assigning nil will do) in a main chunk before being used --- anywhere or assigned to inside a function. --- - -local getinfo, error, rawset, rawget = debug.getinfo, error, rawset, rawget - -local mt = getmetatable(_G) -if mt == nil then - mt = {} - setmetatable(_G, mt) -end - -mt.__declared = {} - -local function what () - local d = getinfo(3, "S") - return d and d.what or "C" -end - -mt.__newindex = function (t, n, v) - if not mt.__declared[n] then - local w = what() - if w ~= "main" and w ~= "C" then - error("assign to undeclared variable '"..n.."'", 2) - end - mt.__declared[n] = true - end - rawset(t, n, v) -end - -mt.__index = function (t, n) - if not mt.__declared[n] and what() ~= "C" then - error("variable '"..n.."' is not declared", 2) - end - return rawget(t, n) -end - |