Can we get _SELF and _SUPER?
local x = 1
function f()
local x = 2
print(_SUPER.x) --> 1
end
print(f())
pcall(function(x)
if x < 0 then error() end
if x == 0 then return end
print(x)
_SELF(x-1)
end, 3) --> 3; 2; 1;
For performance, they would be translated by the compiler. Passing
_SUPER around would copy all upvalues into a table, but for
simplicity changing this table wouldn't change upvalues (e.g. no
current syntactic construct can create a metatable).
_SELF and _SUPER would be indexable and callable.
(No idea what to say next. Idk, I'm just rambling I guess .-.)
A more interesting question .. why do you need this? And, for your need, have you explored other ways to solve the problem within the existing Lua language?
For example, _SELF for functions is trivial…
do local _SELF = function() … end x = _SELF end
—Tim
|