Does Lua allow metamethods with a strange number of arguments?


For example, can I declare a metamethod for __index which takes two arguments, then do something like myuserdata[somearg1, somearg2]? Not that I want to use it or that I have any idea of why it would be useful, I'm just wondering if in my library that deals with binding c++ to Lua I can and should enforce a right (except for __call metamethod of course) number of arguments of the function bound as metamethod.

Lua doesn't enforce parameter counts on functions in general:

That said, the metamethods which map to syntax are bound by the syntax - for instance, Lua syntax doesn't allow ,-separated values inside [] indexing:

luac: ']' expected near ','