Module:No globals
Jump to navigation
Jump to search
Usage
Include this module at the top of your code. An error will be raised any time your code tries to read or write to a non-local (undeclared) variable.
Tests
Module:No globals | Script error: No such module "No globals/testcases". |
Module:No globals/sandbox | Script error: No such module "No globals/testcases". |
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
-- perf optimization here and below: do not load Module:TNT unless there is an error
error(require('Module:TNT').format('I18n/No globals', 'err-read', tostring(k)), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error(require('Module:TNT').format('I18n/No globals', 'err-write', tostring(k)), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)