From c71f27769777c1dff3a2a95c0920b20cc0f0d5fb Mon Sep 17 00:00:00 2001 From: Enyby Date: Sun, 20 Oct 2019 07:07:17 +0300 Subject: [PATCH] Improve error messages for lib table. --- src/core/org/luaj/vm2/lib/TableLib.java | 16 +++++----------- src/core/org/luaj/vm2/lib/TableLibFunction.java | 9 +++++++++ 2 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 src/core/org/luaj/vm2/lib/TableLibFunction.java diff --git a/src/core/org/luaj/vm2/lib/TableLib.java b/src/core/org/luaj/vm2/lib/TableLib.java index 74456952..02b82ad4 100644 --- a/src/core/org/luaj/vm2/lib/TableLib.java +++ b/src/core/org/luaj/vm2/lib/TableLib.java @@ -73,12 +73,6 @@ public class TableLib extends TwoArgFunction { if (!env.get("package").isnil()) env.get("package").get("loaded").set("table", table); return NIL; } - - static class TableLibFunction extends LibFunction { - public LuaValue call() { - return argerror(1, "table expected, got no value"); - } - } // "concat" (table [, sep [, i [, j]]]) -> string static class concat extends TableLibFunction { @@ -104,12 +98,12 @@ public class TableLib extends TwoArgFunction { return argerror(2, "value expected"); } case 2: { - LuaTable table = args.arg1().checktable(); + LuaTable table = args.checktable(1); table.insert(table.length()+1,args.arg(2)); return NONE; } default: { - args.arg1().checktable().insert(args.checkint(2),args.arg(3)); + args.checktable(1).insert(args.checkint(2),args.arg(3)); return NONE; } } @@ -128,15 +122,15 @@ public class TableLib extends TwoArgFunction { // "remove" (table [, pos]) -> removed-ele static class remove extends VarArgFunction { public Varargs invoke(Varargs args) { - return args.arg1().checktable().remove(args.optint(2, 0)); + return args.checktable(1).remove(args.optint(2, 0)); } } // "sort" (table [, comp]) static class sort extends VarArgFunction { public Varargs invoke(Varargs args) { - args.arg1().checktable().sort( - args.arg(2).isnil()? NIL: args.arg(2).checkfunction()); + args.checktable(1).sort( + args.isnil(2)? NIL: args.checkfunction(2)); return NONE; } } diff --git a/src/core/org/luaj/vm2/lib/TableLibFunction.java b/src/core/org/luaj/vm2/lib/TableLibFunction.java new file mode 100644 index 00000000..5fabef7e --- /dev/null +++ b/src/core/org/luaj/vm2/lib/TableLibFunction.java @@ -0,0 +1,9 @@ +package org.luaj.vm2.lib; + +import org.luaj.vm2.LuaValue; + +class TableLibFunction extends LibFunction { + public LuaValue call() { + return argerror(1, "table expected, got no value"); + } +}