|
But I'm feeling 98% sure "in nil do ... end" never will become valid Lua.It is valid in 5.2 and it forces (at runtime) that the block does not contain any references to global variables. Lua 5.2.0 (work1) Copyright (C) 1994-2008 Lua.org, PUC-Rio > in nil do a=1 end stdin:1: attempt to index local '(environment)' (a nil value)
I was wrong, thanks for correcting. It almost allows non-tables as the environment! Just tried: local a = newproxy(true) local print = print getmetatable(a).__index = function (v, x) print(x) return "ret" end in a do print(key1); (function () print(key2) end) (); end Which outputs: key1 ret ./src/lua: testen.lua:6: environment is not a table: cannot create closure Kind of sad :(Userdata works as environment in the 'in .. do .. end', which is great new feature,
but still doesn't work in closures...