Changeset 6774 for code/branches/gamestates3/data
- Timestamp:
- Apr 23, 2010, 11:46:11 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/gamestates3/data/lua/Strict.lua
r6746 r6774 13 13 end 14 14 15 __STRICT = false15 __STRICT = true 16 16 mt.__declared = {} 17 17 18 18 mt.__newindex = function (t, n, v) 19 if __STRICT and not mt.__declared[n] then 20 local d = debug.getinfo(2, "S") 21 local w = d and d.what or "C" 22 if w ~= "main" and w ~= "C" then 23 error("assign to undeclared variable '"..n.."'", 2) 19 if not mt.__declared[n] then 20 if __STRICT then 21 local d = debug.getinfo(2, "S") 22 local w = d and d.what or "C" 23 if w ~= "main" and w ~= "C" then 24 error("Assigning to undeclared global variable '"..n.."'", 2) 25 end 24 26 end 25 27 mt.__declared[n] = true … … 29 31 30 32 mt.__index = function (t, n) 31 if not mt.__declared[n] and debug.getinfo(2, "S").what ~= "C" then 32 error("variable '"..n.."' is not declared", 2) 33 if not mt.__declared[n] then 34 local d = debug.getinfo(2, "S") 35 local w = d and d.what or "C" 36 if w ~= "C" then 37 error("Global variable '"..n.."' was not declared", 2) 38 else 39 mt.__declared[n] = true 40 end 33 41 end 34 42 return rawget(t, n) … … 36 44 37 45 function global(...) 38 for _, v in ipairs{...} do mt.__declared[v] = true end 46 for _, v in ipairs{...} do 47 mt.__declared[v] = true 48 end 39 49 end
Note: See TracChangeset
for help on using the changeset viewer.