On Thu, Jan 28, 2016 at 6:06 PM, Dirk Laurie
<dirk.laurie@gmail.com> wrote:
Any function supplied as a metamethod must have the same argument
and return value lis as the built-in function it replaces.
Except there does not seem to be any definitive description of the built-in function, either.
Besides, there need not be a built-in function to begin with. The manual says:
"index": The indexing access table[key]
. This event happens when table
is not a table [...].
It is well documented what happens when the argument and return value
counts in a function call of a function differ from what is expected.
I take issue with the fact that the manual does not describe what is expected.
Wrong only in the sense that the extra return values are quietly
discarded.
The behaviour I encountered was more bizarre than that, probably because there was a few C/Lua transitions in that particular case.
Cheers,
V.