Mercurial Hosting > luan
comparison core/src/luan/impl/EqExpr.java @ 426:23a93c118042
fix LuanTable.get() to use metatables
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 01 May 2015 18:44:20 -0600 |
parents | d55e873e1f0d |
children | bf5e62a9090c |
comparison
equal
deleted
inserted
replaced
425:0a2fb80907f9 | 426:23a93c118042 |
---|---|
40 LuanTable t2 = (LuanTable)o2; | 40 LuanTable t2 = (LuanTable)o2; |
41 LuanTable mt1 = t1.getMetatable(); | 41 LuanTable mt1 = t1.getMetatable(); |
42 LuanTable mt2 = t2.getMetatable(); | 42 LuanTable mt2 = t2.getMetatable(); |
43 if( mt1==null || mt2==null ) | 43 if( mt1==null || mt2==null ) |
44 return false; | 44 return false; |
45 Object f = mt1.get("__eq"); | 45 Object f = mt1.rawGet("__eq"); |
46 if( f == null || !f.equals(mt2.get("__eq")) ) | 46 if( f == null || !f.equals(mt2.rawGet("__eq")) ) |
47 return false; | 47 return false; |
48 LuanBit bit = luan.bit(se); | 48 LuanBit bit = luan.bit(se); |
49 LuanFunction fn = bit.checkFunction(f); | 49 LuanFunction fn = bit.checkFunction(f); |
50 return Luan.toBoolean( Luan.first(bit.call(fn,"__eq",new Object[]{o1,o2})) ); | 50 return Luan.toBoolean( Luan.first(bit.call(fn,"__eq",new Object[]{o1,o2})) ); |
51 } | 51 } |