[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: suggestion: __typeof()
- From: Holger Stenger <stenger@...>
- Date: Fri, 20 Jan 2006 14:11:28 +0100
Jeff Sheets wrote:
> I'm wondering exactly how the addition of __typeof would break existing
> functions. First, the argument of if you don't want it, don't use it.
> Next the question I have is simple, if a third-party module is
> attempting to inspect every userdata that comes along, I would consider
> that an error. Third party mods should only be using userdata that they
> themselves created, so an error should occur when you pass in your
> special userdata/table with the __typeof metamethod that returns "foo".
> Implementing a __typeof metamethod, I think, would help provide a
> universal code standard for using unusual data types, and would
> therefore produce better code.
I think the real problem is not when you use __typeof to report some
custom type string, but rather when a userdata poses as one of the
built-in types. When __typeof returns "table" ("string"), does the
corresponding object really behave like a table (string)? Think of
ipairs, pairs, get/setmetatable (all the string functions). True, in a
modified Lua you can probably do all that, and adding support for
__typeof seems like a minor issue in this situation, but what about
stock Lua?
As useful as __typeof may be in a controlled for power-users, I guess
it is this kind of thinking that makes the Lua authors hesitate about
adding it to stock Lua. (Am I right here? ;)
Just playing devil's advocate,
Holger Stenger