lua

A copy of the Lua development repository
Log | Files | Refs | README

commit fc8d077612a235b42d5defd48d6ba923ed85a17f
parent e64fcb9d9454d7640a0a171c9e625139c0c436c0
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Tue, 29 May 2007 15:59:36 -0300

bug: wrong error message in some concatenations

Diffstat:
Mbugs | 23++++++++++++++++++++++-
Mldebug.c | 6+++---
2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/bugs b/bugs @@ -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 = [[ @@ -1449,6 +1449,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 ]], since = [[i ]], diff --git a/ldebug.c b/ldebug.c @@ -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"); }