bug: wrong error message in some concatenations

This commit is contained in:
Roberto Ierusalimschy 2007-05-29 15:59:59 -03:00
parent e64fcb9d94
commit fc8d077612
2 changed files with 25 additions and 4 deletions

23
bugs
View File

@ -1417,7 +1417,7 @@ lcode.c:
Bug{
what = [[Count hook may be called without being set.]],
report = [[Mike Pall, on May 2007]],
report = [[Mike Pall, on 05/2007]],
since = [[?]],
example = [[ ]],
patch = [[
@ -1448,6 +1448,27 @@ not in 'lua_State'.)
]],
}
Bug{
what = [[wrong error message in some concatenations]],
report = [[Alex Davies, on 05/2007]],
since = [[5.1.2]],
example = [[a = nil; a = (1)..a]],
patch = [[
ldebug.c:
@@ -563,8 +563,8 @@
void luaG_concaterror (lua_State *L, StkId p1, StkId p2) {
- if (ttisstring(p1)) p1 = p2;
- lua_assert(!ttisstring(p1));
+ if (ttisstring(p1) || ttisnumber(p1)) p1 = p2;
+ lua_assert(!ttisstring(p1) && !ttisnumber(p1));
luaG_typeerror(L, p1, "concatenate");
}
]],
}
Bug{
what = [[ ]],
report = [[ , on ]],

View File

@ -1,5 +1,5 @@
/*
** $Id: ldebug.c,v 2.35 2007/03/26 18:35:34 roberto Exp roberto $
** $Id: ldebug.c,v 2.36 2007/05/09 15:49:36 roberto Exp roberto $
** Debug Interface
** See Copyright Notice in lua.h
*/
@ -591,8 +591,8 @@ void luaG_typeerror (lua_State *L, const TValue *o, const char *op) {
void luaG_concaterror (lua_State *L, StkId p1, StkId p2) {
if (ttisstring(p1)) p1 = p2;
lua_assert(!ttisstring(p1));
if (ttisstring(p1) || ttisnumber(p1)) p1 = p2;
lua_assert(!ttisstring(p1) && !ttisnumber(p2));
luaG_typeerror(L, p1, "concatenate");
}