lua-users home
lua-l archive

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

On Wed, Jan 27, 2016 at 10:27 AM, Dirk Laurie <> wrote:
> 2016-01-27 19:04 GMT+02:00 Stephan Hennig <>:
>>  Note that queries for metamethods are always raw; when
>>   looking-up metamethods, Lua doesn't consider a metatable's
>>   metatable.  Lua considers metatables of metamethods, though.
>>   In fact, chaining metamethods is at the heart of many
>>   approaches to object-oriented programming in Lua.
> Sorry, I find this more obscure than the original one-sentence
> description.
>> Note that queries for metamethods are always raw; the access
>> to a metamethod does not invoke other metamethods.
> I read this as "if the metatable does not contain for example
> __add, the __index metamethod is not invoked to find
> a fallback, eic." What other way is there of reading it?

It could also be read (erroneously) as "y = x.__add will always be
raw". At the very least it could be said that built-in operations will
always look up metamethods using raw access or something like that.

/s/ Adam