diff options
author | Steven Noonan <steven@uplinklabs.net> | 2009-10-14 01:05:00 -0700 |
---|---|---|
committer | Steven Noonan <steven@uplinklabs.net> | 2009-10-14 21:33:59 -0700 |
commit | 9d51433ef6329e65938c5655586ea915493ba8ac (patch) | |
tree | a904d02f87629deaddb5cca83ff205eb836e53ba /crawl-ref/source/util/lua/etc/strict.lua | |
parent | 59134ed3b2808e4e48ecc64ed8579b84431af057 (diff) | |
download | crawl-ref-9d51433ef6329e65938c5655586ea915493ba8ac.tar.gz crawl-ref-9d51433ef6329e65938c5655586ea915493ba8ac.zip |
contribs: moved to contribs dir, added as submodules
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Diffstat (limited to 'crawl-ref/source/util/lua/etc/strict.lua')
-rw-r--r-- | crawl-ref/source/util/lua/etc/strict.lua | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/crawl-ref/source/util/lua/etc/strict.lua b/crawl-ref/source/util/lua/etc/strict.lua deleted file mode 100644 index 604619dd2e..0000000000 --- a/crawl-ref/source/util/lua/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 - |