lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


2009/9/28 Roberto Ierusalimschy <roberto@inf.puc-rio.br>:
>> You can already associate any kind of information to a function by
>> using it as a weak key in a Lua table. However you need access to the
>> debug library to access built-in informations, or simply to allow a
>> function to get a reference to itself to use as a key in the weak
>> tables I mentioned.
>
> You do not need any reference; the function itself can be the key.

I meant something like that:

local ptypes = {}

function foo(a)
  assert(type(a)==ptypes[debug.getinfo(1, 'f').func][1], "invalid
parameter type")
  return a + 42
end
ptypes[foo] =  {'number'}

Is there any other way to use the currently executing function as a key ?