From Lua 5.2: Remove error for ambiguous function call syntax.

Needs -DLUAJIT_ENABLE_LUA52COMPAT.
This commit is contained in:
Mike Pall 2012-09-28 18:12:43 +02:00
parent 7a6bb9a208
commit 550ac44e41
2 changed files with 4 additions and 0 deletions

View File

@ -135,7 +135,9 @@ ERRDEF(XLIMF, "function at line %d has more than %d %s")
ERRDEF(XMATCH, LUA_QS " expected (to close " LUA_QS " at line %d)") ERRDEF(XMATCH, LUA_QS " expected (to close " LUA_QS " at line %d)")
ERRDEF(XFIXUP, "function too long for return fixup") ERRDEF(XFIXUP, "function too long for return fixup")
ERRDEF(XPARAM, "<name> or " LUA_QL("...") " expected") ERRDEF(XPARAM, "<name> or " LUA_QL("...") " expected")
#if !LJ_52
ERRDEF(XAMBIG, "ambiguous syntax (function call x new statement)") ERRDEF(XAMBIG, "ambiguous syntax (function call x new statement)")
#endif
ERRDEF(XFUNARG, "function arguments expected") ERRDEF(XFUNARG, "function arguments expected")
ERRDEF(XSYMBOL, "unexpected symbol") ERRDEF(XSYMBOL, "unexpected symbol")
ERRDEF(XDOTS, "cannot use " LUA_QL("...") " outside a vararg function") ERRDEF(XDOTS, "cannot use " LUA_QL("...") " outside a vararg function")

View File

@ -1910,8 +1910,10 @@ static void parse_args(LexState *ls, ExpDesc *e)
BCReg base; BCReg base;
BCLine line = ls->linenumber; BCLine line = ls->linenumber;
if (ls->token == '(') { if (ls->token == '(') {
#if !LJ_52
if (line != ls->lastline) if (line != ls->lastline)
err_syntax(ls, LJ_ERR_XAMBIG); err_syntax(ls, LJ_ERR_XAMBIG);
#endif
lj_lex_next(ls); lj_lex_next(ls);
if (ls->token == ')') { /* f(). */ if (ls->token == ')') { /* f(). */
args.k = VVOID; args.k = VVOID;