Module:No globals

From RobotX
Jump to navigation Jump to search
warning Warning:Do not edit. This page is maintained by a bot. All edits should be done at mediawiki.org.   (translate this warning)
Please help translate this page.

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 success: 1, error: 0, skipped: 0
Module:No globals/sandbox success: 1, error: 0, skipped: 0



local mt = getmetatable(_G) or {}
function mt.__index (t, k)
	if k ~= 'arg' then
		error('Tried to read nil global ' .. tostring(k), 2)
	end
	return nil
end
function mt.__newindex(t, k, v)
	if k ~= 'arg' then
		error('Tried to write global ' .. tostring(k), 2)
	end
	rawset(t, k, v)
end
setmetatable(_G, mt)