[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: __eq in shared metatables
- From: Luis Carvalho <carvalho@...>
- Date: Fri, 10 Aug 2007 15:56:35 -0400
Hi,
Is there any reason why __eq is not called when the metatable is shared for a
type other than table and userdata?
$ lua
Lua 5.1.1 Copyright (C) 1994-2006 Lua.org, PUC-Rio
> debug.setmetatable(0, {
>> __len=function(x) return x end,
>> __eq=function(x,y) print(x,y) return x<=y and y<=x end
>> })
> print(#1)
1
> print(3==4)
false
Since there are thoughts of honoring __len for tables, it would be nice to
honor __eq as well. Also, I couldn't find this kind of behavior documented in
the reference manual: the manual only mentions that __eq should be called if
two objects have the same type and __eq metamethod.
Cheers,
Luis.
--
A mathematician is a device for turning coffee into theorems.
-- P. Erdos
--
Luis Carvalho
Applied Math PhD Student - Brown University
PGP Key: E820854A <carvalho@dam.brown.edu>