From f2c1531e6cacb10926158d8def5fa5841a0f357e Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 16 May 2025 15:20:32 -0300 Subject: Detail Reports errors with "?:?:" (instead of "?:-1:") when there is no debug information. --- ldebug.c | 11 +++++------ testes/errors.lua | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ldebug.c b/ldebug.c index f4bb0a08..9110f437 100644 --- a/ldebug.c +++ b/ldebug.c @@ -817,16 +817,15 @@ l_noret luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) { /* add src:line information to 'msg' */ const char *luaG_addinfo (lua_State *L, const char *msg, TString *src, int line) { - char buff[LUA_IDSIZE]; - if (src) { + if (src == NULL) /* no debug information? */ + return luaO_pushfstring(L, "?:?: %s", msg); + else { + char buff[LUA_IDSIZE]; size_t idlen; const char *id = getlstr(src, idlen); luaO_chunkid(buff, id, idlen); + return luaO_pushfstring(L, "%s:%d: %s", buff, line, msg); } - else { /* no source available; use "?" instead */ - buff[0] = '?'; buff[1] = '\0'; - } - return luaO_pushfstring(L, "%s:%d: %s", buff, line, msg); } diff --git a/testes/errors.lua b/testes/errors.lua index 6c76a99a..a0728913 100644 --- a/testes/errors.lua +++ b/testes/errors.lua @@ -303,14 +303,14 @@ do local f = function (a) return a + 1 end f = assert(load(string.dump(f, true))) assert(f(3) == 4) - checkerr("^%?:%-1:", f, {}) + checkerr("^%?:%?:", f, {}) -- code with a move to a local var ('OP_MOV A B' with A