commit 9fa1baf6de64e3e9a3288c21e2da2a10bcd25cd4
parent 49dfaf7447ab707d17fc6061fe1d59c187e4e221
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Thu, 7 Dec 2017 13:43:43 -0200
opcodes for order and shift can use several metamethods,
so it is better to use a generic description + metamethod names
in some error messages shown without '__' prefix
Diffstat:
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/ldebug.c b/ldebug.c
@@ -1,5 +1,5 @@
/*
-** $Id: ldebug.c,v 2.145 2017/11/23 16:35:54 roberto Exp roberto $
+** $Id: ldebug.c,v 2.146 2017/11/23 19:29:04 roberto Exp roberto $
** Debug Interface
** See Copyright Notice in lua.h
*/
@@ -606,12 +606,16 @@ static const char *funcnamefromcode (lua_State *L, CallInfo *ci,
case OP_LEN: tm = TM_LEN; break;
case OP_CONCAT: tm = TM_CONCAT; break;
case OP_EQ: tm = TM_EQ; break;
- case OP_LT: tm = TM_LT; break;
- case OP_LE: tm = TM_LE; break;
+ case OP_LT: case OP_LE: case OP_LTI: case OP_LEI:
+ *name = "order"; /* '<=' can call '__lt', etc. */
+ return "metamethod";
+ case OP_SHRI: case OP_SHLI:
+ *name = "shift";
+ return "metamethod";
default:
return NULL; /* cannot find a reasonable name */
}
- *name = getstr(G(L)->tmname[tm]);
+ *name = getstr(G(L)->tmname[tm]) + 2;
return "metamethod";
}