Mercurial Hosting > luan
changeset 443:bf5e62a9090c
remove toBoolean() and to_boolean()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 04 May 2015 14:55:51 -0600 |
parents | 75ccb4da803f |
children | e45bcaf6f5fe |
files | core/src/luan/Luan.java core/src/luan/LuanBit.java core/src/luan/LuanJavaFunction.java core/src/luan/LuanState.java core/src/luan/impl/AndExpr.java core/src/luan/impl/EqExpr.java core/src/luan/impl/LeExpr.java core/src/luan/impl/OrExpr.java core/src/luan/modules/BasicLuan.java core/src/luan/modules/Luan.luan core/src/luan/modules/StringLuan.java core/src/luan/modules/TableLuan.java web/src/luan/modules/web/HttpServicer.java |
diffstat | 13 files changed, 18 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/core/src/luan/Luan.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/Luan.java Mon May 04 14:55:51 2015 -0600 @@ -47,10 +47,6 @@ return "userdata"; } - public static boolean toBoolean(Object obj) { - return obj != null && !Boolean.FALSE.equals(obj); - } - public static Number toNumber(Object obj) { return toNumber(obj,null); }
--- a/core/src/luan/LuanBit.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/LuanBit.java Mon May 04 14:55:51 2015 -0600 @@ -133,7 +133,7 @@ } LuanFunction fn = getBinHandler("__lt",o1,o2); if( fn != null ) - return Luan.toBoolean( Luan.first(call(fn,"__lt",new Object[]{o1,o2})) ); + return checkBoolean( Luan.first(call(fn,"__lt",new Object[]{o1,o2})) ); throw exception( "attempt to compare " + Luan.type(o1) + " with " + Luan.type(o2) ); }
--- a/core/src/luan/LuanJavaFunction.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/LuanJavaFunction.java Mon May 04 14:55:51 2015 -0600 @@ -237,7 +237,7 @@ return "ARG_SAME"; } }; - +/* private static final ArgConverter ARG_BOOLEAN = new ArgConverter() { public Object convert(LuanState luan,Object obj) { return Luan.toBoolean(obj); @@ -255,7 +255,7 @@ return "ARG_BOOLEAN_OBJ"; } }; - +*/ private static final ArgConverter ARG_DOUBLE = new ArgConverter() { public Object convert(LuanState luan,Object obj) { if( obj instanceof Double ) @@ -516,10 +516,12 @@ } private static ArgConverter getArgConverter(Class cls) { +/* if( cls == Boolean.TYPE ) return ARG_BOOLEAN; if( cls.equals(Boolean.class) ) return ARG_BOOLEAN_OBJ; +*/ if( cls == Double.TYPE || cls.equals(Double.class) ) return ARG_DOUBLE; if( cls == Float.TYPE || cls.equals(Float.class) )
--- a/core/src/luan/LuanState.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/LuanState.java Mon May 04 14:55:51 2015 -0600 @@ -72,6 +72,10 @@ return JAVA.call(fn,fnName,args); } + public Boolean checkBoolean(Object obj) throws LuanException { + return JAVA.checkBoolean(obj); + } + public String checkString(Object obj) throws LuanException { return JAVA.checkString(obj); }
--- a/core/src/luan/impl/AndExpr.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/impl/AndExpr.java Mon May 04 14:55:51 2015 -0600 @@ -13,6 +13,6 @@ @Override public Object eval(LuanStateImpl luan) throws LuanException { Object v1 = op1.eval(luan); - return !Luan.toBoolean(v1) ? v1 : op2.eval(luan); + return v1 == null || Boolean.FALSE.equals(v1) ? v1 : op2.eval(luan); } }
--- a/core/src/luan/impl/EqExpr.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/impl/EqExpr.java Mon May 04 14:55:51 2015 -0600 @@ -47,7 +47,7 @@ return false; LuanBit bit = luan.bit(se); LuanFunction fn = bit.checkFunction(f); - return Luan.toBoolean( Luan.first(bit.call(fn,"__eq",new Object[]{o1,o2})) ); + return bit.checkBoolean( Luan.first(bit.call(fn,"__eq",new Object[]{o1,o2})) ); } @Override public String toString() {
--- a/core/src/luan/impl/LeExpr.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/impl/LeExpr.java Mon May 04 14:55:51 2015 -0600 @@ -33,10 +33,10 @@ LuanBit bit = luan.bit(se); LuanFunction fn = bit.getBinHandler("__le",o1,o2); if( fn != null ) - return Luan.toBoolean( Luan.first(bit.call(fn,"__le",new Object[]{o1,o2})) ); + return bit.checkBoolean( Luan.first(bit.call(fn,"__le",new Object[]{o1,o2})) ); fn = bit.getBinHandler("__lt",o1,o2); if( fn != null ) - return !Luan.toBoolean( Luan.first(bit.call(fn,"__lt",new Object[]{o2,o1})) ); + return !bit.checkBoolean( Luan.first(bit.call(fn,"__lt",new Object[]{o2,o1})) ); throw bit.exception( "attempt to compare " + Luan.type(o1) + " with " + Luan.type(o2) ); } }
--- a/core/src/luan/impl/OrExpr.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/impl/OrExpr.java Mon May 04 14:55:51 2015 -0600 @@ -13,6 +13,6 @@ @Override public Object eval(LuanStateImpl luan) throws LuanException { Object v1 = op1.eval(luan); - return Luan.toBoolean(v1) ? v1 : op2.eval(luan); + return v1 != null && !Boolean.FALSE.equals(v1) ? v1 : op2.eval(luan); } }
--- a/core/src/luan/modules/BasicLuan.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/modules/BasicLuan.java Mon May 04 14:55:51 2015 -0600 @@ -111,10 +111,6 @@ return luan.toString(v); } - public static boolean to_boolean(Object v) throws LuanException { - return Luan.toBoolean(v); - } - public static void error(LuanState luan,Object msg) throws LuanException { throw luan.exception(msg); }
--- a/core/src/luan/modules/Luan.luan Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/modules/Luan.luan Mon May 04 14:55:51 2015 -0600 @@ -22,7 +22,6 @@ raw_len = BasicLuan.raw_len raw_set = BasicLuan.raw_set set_metatable = BasicLuan.set_metatable -to_boolean = BasicLuan.to_boolean to_number = BasicLuan.to_number to_string = BasicLuan.to_string try = BasicLuan.try_
--- a/core/src/luan/modules/StringLuan.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/modules/StringLuan.java Mon May 04 14:55:51 2015 -0600 @@ -181,7 +181,7 @@ while( i<max && m.find() ) { String match = m.groupCount()==0 ? m.group() : m.group(1); Object val = t.get(luan,match); - if( Luan.toBoolean(val) ) { + if( val != null ) { String replacement = luan.checkString(val); if( replacement==null ) throw luan.exception( "invalid replacement value (a "+Luan.type(val)+")" ); @@ -208,7 +208,7 @@ } } Object val = Luan.first( luan.call(fn,"repl-arg",args) ); - if( Luan.toBoolean(val) ) { + if( val != null ) { String replacement = luan.checkString(val); if( replacement==null ) throw luan.exception( "invalid replacement value (a "+Luan.type(val)+")" );
--- a/core/src/luan/modules/TableLuan.java Mon May 04 13:49:12 2015 -0600 +++ b/core/src/luan/modules/TableLuan.java Mon May 04 14:55:51 2015 -0600 @@ -66,7 +66,7 @@ lt = new LessThan() { public boolean isLessThan(Object o1,Object o2) { try { - return Luan.toBoolean(Luan.first(luan.call(comp,"comp-arg",new Object[]{o1,o2}))); + return luan.checkBoolean(Luan.first(luan.call(comp,"comp-arg",new Object[]{o1,o2}))); } catch(LuanException e) { throw new LuanRuntimeException(e); }
--- a/web/src/luan/modules/web/HttpServicer.java Mon May 04 13:49:12 2015 -0600 +++ b/web/src/luan/modules/web/HttpServicer.java Mon May 04 14:55:51 2015 -0600 @@ -54,7 +54,7 @@ if( !(mod instanceof LuanTable) ) throw luan.exception( "module '"+modName+"' must return a table" ); LuanTable tbl = (LuanTable)mod; - if( Luan.toBoolean( tbl.get(luan,"per_session") ) ) { + if( Boolean.TRUE.equals(tbl.get(luan,"per_session")) ) { HttpSession session = request.getSession(); LuanState sessionLuan = (LuanState)session.getValue("luan"); if( sessionLuan!=null ) {