diff core/src/luan/modules/BasicLuan.java @ 646:cdc70de628b5

simplify LuanException
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 29 Mar 2016 19:58:39 -0600
parents 859c0dedc8b6
children d95caff8ba8c
line wrap: on
line diff
--- a/core/src/luan/modules/BasicLuan.java	Tue Mar 29 18:09:51 2016 -0600
+++ b/core/src/luan/modules/BasicLuan.java	Tue Mar 29 19:58:39 2016 -0600
@@ -46,17 +46,17 @@
 			fileName = "stdin:";
 		String src = PackageLuan.read(luan,fileName,addExtension);
 		if( src == null )
-			throw new LuanException(luan, "file '"+fileName+"' not found" );
+			throw new LuanException("file '"+fileName+"' not found" );
 		return load(luan,src,fileName,null,false);
 	}
 
 	public static LuanFunction pairs(final LuanState luan,final LuanTable t) throws LuanException {
-		Utils.checkNotNull(luan,t);
+		Utils.checkNotNull(t);
 		return t.pairs(luan);
 	}
 
-	public static LuanFunction ipairs(LuanState luan,final LuanTable t) throws LuanException {
-		Utils.checkNotNull(luan,t);
+	public static LuanFunction ipairs(final LuanTable t) throws LuanException {
+		Utils.checkNotNull(t);
 		return new LuanFunction() {
 			List<Object> list = t.asList();
 			int i = 0;
@@ -71,8 +71,8 @@
 		};
 	}
 
-	public static Object get_metatable(LuanState luan,LuanTable table) throws LuanException {
-		Utils.checkNotNull(luan,table);
+	public static Object get_metatable(LuanTable table) throws LuanException {
+		Utils.checkNotNull(table);
 		LuanTable metatable = table.getMetatable();
 		if( metatable == null )
 			return null;
@@ -80,10 +80,10 @@
 		return obj!=null ? obj : metatable;
 	}
 
-	public static void set_metatable(LuanState luan,LuanTable table,LuanTable metatable) throws LuanException {
-		Utils.checkNotNull(luan,table);
+	public static void set_metatable(LuanTable table,LuanTable metatable) throws LuanException {
+		Utils.checkNotNull(table);
 		if( table.getHandler("__metatable") != null )
-			throw new LuanException(luan,"cannot change a protected metatable");
+			throw new LuanException("cannot change a protected metatable");
 		table.setMetatable(metatable);
 	}
 
@@ -99,7 +99,7 @@
 		table.rawPut(index,value);
 	}
 
-	public static int raw_len(LuanState luan,Object v) throws LuanException {
+	public static int raw_len(Object v) throws LuanException {
 		if( v instanceof String ) {
 			String s = (String)v;
 			return s.length();
@@ -108,7 +108,7 @@
 			LuanTable t = (LuanTable)v;
 			return t.rawLength();
 		}
-		throw new LuanException(luan, "bad argument #1 to 'raw_len' (table or string expected)" );
+		throw new LuanException( "bad argument #1 to 'raw_len' (table or string expected)" );
 	}
 
 	public static String to_string(LuanState luan,Object v) throws LuanException {
@@ -116,54 +116,57 @@
 	}
 
 	public static LuanTable new_error(LuanState luan,Object msg) throws LuanException {
-		return new LuanException(luan,msg).table();
+		String s = luan.toString(msg);
+		LuanTable tbl = new LuanException(s).table();
+		tbl.rawPut( "message", msg );
+		return tbl;
 	}
 
-	public static String assert_string(LuanState luan,String v) throws LuanException {
-		Utils.checkNotNull(luan,v);
+	public static String assert_string(String v) throws LuanException {
+		Utils.checkNotNull(v);
 		return v;
 	}
 
-	public static Number assert_number(LuanState luan,Number v) throws LuanException {
-		Utils.checkNotNull(luan,v);
+	public static Number assert_number(Number v) throws LuanException {
+		Utils.checkNotNull(v);
 		return v;
 	}
 
-	public static LuanTable assert_table(LuanState luan,LuanTable v) throws LuanException {
-		Utils.checkNotNull(luan,v);
+	public static LuanTable assert_table(LuanTable v) throws LuanException {
+		Utils.checkNotNull(v);
 		return v;
 	}
 
-	public static boolean assert_boolean(LuanState luan,boolean v) throws LuanException {
+	public static boolean assert_boolean(boolean v) throws LuanException {
 		return v;
 	}
 
-	public static int assert_integer(LuanState luan,int v) throws LuanException {
+	public static int assert_integer(int v) throws LuanException {
 		return v;
 	}
 
-	public static long assert_long(LuanState luan,long v) throws LuanException {
+	public static long assert_long(long v) throws LuanException {
 		return v;
 	}
 
-	public static double assert_double(LuanState luan,double v) throws LuanException {
+	public static double assert_double(double v) throws LuanException {
 		return v;
 	}
 
-	@LuanMethod public static byte[] assert_binary(LuanState luan,byte[] v) throws LuanException {
-		Utils.checkNotNull(luan,v);
+	@LuanMethod public static byte[] assert_binary(byte[] v) throws LuanException {
+		Utils.checkNotNull(v);
 		return v;
 	}
 
-	public static LuanFunction assert_function(LuanState luan,LuanFunction v) throws LuanException {
-		Utils.checkNotNull(luan,v);
+	public static LuanFunction assert_function(LuanFunction v) throws LuanException {
+		Utils.checkNotNull(v);
 		return v;
 	}
 
-	public static LuanFunction range(LuanState luan,final double from,final double to,Double stepV) throws LuanException {
+	public static LuanFunction range(final double from,final double to,Double stepV) throws LuanException {
 		final double step = stepV==null ? 1.0 : stepV;
 		if( step == 0.0 )
-			throw new LuanException(luan,"bad argument #3 (step may not be zero)");
+			throw new LuanException("bad argument #3 (step may not be zero)");
 		return new LuanFunction() {
 			double v = from;
 
@@ -194,25 +197,25 @@
 	}
 
 	public static Object try_(LuanState luan,LuanTable blocks,Object... args) throws LuanException {
-		Utils.checkNotNull(luan,blocks);
+		Utils.checkNotNull(blocks);
 		Object obj = blocks.get(luan,1);
 		if( obj == null )
-			throw new LuanException(luan,"missing 'try' value");
+			throw new LuanException("missing 'try' value");
 		if( !(obj instanceof LuanFunction) )
-			throw new LuanException(luan,"bad 'try' value (function expected, got "+Luan.type(obj)+")");
+			throw new LuanException("bad 'try' value (function expected, got "+Luan.type(obj)+")");
 		LuanFunction tryFn = (LuanFunction)obj;
 		LuanFunction catchFn = null;
 		obj = blocks.get(luan,"catch");
 		if( obj != null ) {
 			if( !(obj instanceof LuanFunction) )
-				throw new LuanException(luan,"bad 'catch' value (function expected, got "+Luan.type(obj)+")");
+				throw new LuanException("bad 'catch' value (function expected, got "+Luan.type(obj)+")");
 			catchFn = (LuanFunction)obj;
 		}
 		LuanFunction finallyFn = null;
 		obj = blocks.get(luan,"finally");
 		if( obj != null ) {
 			if( !(obj instanceof LuanFunction) )
-				throw new LuanException(luan,"bad 'finally' value (function expected, got "+Luan.type(obj)+")");
+				throw new LuanException("bad 'finally' value (function expected, got "+Luan.type(obj)+")");
 			finallyFn = (LuanFunction)obj;
 		}
 		try {
@@ -241,8 +244,8 @@
 		}
 	}
 
-	public static String number_type(LuanState luan,Number v) throws LuanException {
-		Utils.checkNotNull(luan,v);
+	public static String number_type(Number v) throws LuanException {
+		Utils.checkNotNull(v);
 		return v.getClass().getSimpleName().toLowerCase();
 	}