changeset 635:c83b8cefd922

better error handling in theme code
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 01 Mar 2016 07:01:58 -0700
parents 3dde072c3420
children 13b390bfed32
files core/src/luan/impl/ThemeParser.java
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
diff -r 3dde072c3420 -r c83b8cefd922 core/src/luan/impl/ThemeParser.java
--- a/core/src/luan/impl/ThemeParser.java	Sun Feb 28 04:21:08 2016 -0700
+++ b/core/src/luan/impl/ThemeParser.java	Tue Mar 01 07:01:58 2016 -0700
@@ -4,6 +4,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.ArrayList;
+import luan.Luan;
 import luan.LuanSource;
 import luan.LuanTable;
 import luan.LuanElement;
@@ -211,7 +212,10 @@
 			final Expr env = env();
 			Expr exp = new ExprImpl(se(start,"indent")) {
 				@Override public Object eval(LuanStateImpl luan) throws LuanException {
-					LuanTable tbl = (LuanTable)env.eval(luan);
+					Object obj = env.eval(luan);
+					if( !(obj instanceof LuanTable) )
+						throw new LuanException(luan,"bad argument (table expected, got "+Luan.type(obj)+")");
+					LuanTable tbl = (LuanTable)obj;
 					String indent = (String)tbl.get(luan,INDENT);
 					if( indent==null )  throw new NullPointerException();
 					return indent;