comparison core/src/luan/modules/JavaLuan.java @ 510:2da0bcb979b5

better error messages
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 22 May 2015 02:28:15 -0600
parents e3b0846dc2ef
children e3fb9768dbb3
comparison
equal deleted inserted replaced
509:e3b0846dc2ef 510:2da0bcb979b5
53 LuanState luan = bit.luan; 53 LuanState luan = bit.luan;
54 Object rtn = __index(luan,obj,key); 54 Object rtn = __index(luan,obj,key);
55 if( rtn != FAIL ) 55 if( rtn != FAIL )
56 return rtn; 56 return rtn;
57 if( bit.el != null ) 57 if( bit.el != null )
58 throw bit.exception( "invalid index ["+luan.toString(key)+"] for ("+bit.el.text()+") java: "+obj.getClass() ); 58 throw bit.exception( "invalid index for java "+obj.getClass()+" in '"+bit.el.text()+"'" );
59 else 59 else
60 throw bit.exception( "invalid index ["+luan.toString(key)+"] for java: "+obj.getClass() ); 60 throw bit.exception( "invalid index for java "+obj.getClass() );
61 } 61 }
62 62
63 public static Object __index(LuanState luan,Object obj,Object key) throws LuanException { 63 public static Object __index(LuanState luan,Object obj,Object key) throws LuanException {
64 checkJava(luan); 64 checkJava(luan);
65 if( obj instanceof Static ) { 65 if( obj instanceof Static ) {
103 } 103 }
104 Integer i = Luan.asInteger(key); 104 Integer i = Luan.asInteger(key);
105 if( i != null ) { 105 if( i != null ) {
106 return Array.get(obj,i); 106 return Array.get(obj,i);
107 } 107 }
108 throw luan.exception("invalid member '"+key+"' for java array: "+obj); 108 // throw luan.exception("invalid member '"+key+"' for java array: "+obj);
109 } 109 } else if( key instanceof String ) {
110 if( key instanceof String ) {
111 String name = (String)key; 110 String name = (String)key;
112 if( "instanceof".equals(name) ) { 111 if( "instanceof".equals(name) ) {
113 return new LuanJavaFunction(instanceOf,new InstanceOf(obj)); 112 return new LuanJavaFunction(instanceOf,new InstanceOf(obj));
114 } else { 113 } else {
115 List<Member> members = getMembers(cls,name); 114 List<Member> members = getMembers(cls,name);