Correct line in error message for constant function

This commit is contained in:
Roberto Ierusalimschy
2025-05-12 11:42:45 -03:00
parent 5b1ab8efdc
commit 7dc6aae290
2 changed files with 8 additions and 1 deletions

View File

@@ -1858,8 +1858,8 @@ static void funcstat (LexState *ls, int line) {
expdesc v, b; expdesc v, b;
luaX_next(ls); /* skip FUNCTION */ luaX_next(ls); /* skip FUNCTION */
ismethod = funcname(ls, &v); ismethod = funcname(ls, &v);
body(ls, &b, ismethod, line);
check_readonly(ls, &v); check_readonly(ls, &v);
body(ls, &b, ismethod, line);
luaK_storevar(ls->fs, &v, &b); luaK_storevar(ls->fs, &v, &b);
luaK_fixline(ls->fs, line); /* definition "happens" in the first line */ luaK_fixline(ls->fs, line); /* definition "happens" in the first line */
} }

View File

@@ -343,6 +343,13 @@ do
function foo (x) return end -- ERROR: foo is read-only function foo (x) return end -- ERROR: foo is read-only
]], "assign to const variable 'foo'") ]], "assign to const variable 'foo'")
checkerr([[
global foo <const>;
function foo (x) -- ERROR: foo is read-only
return
end
]], "%:2%:") -- correct line in error message
end end
print'OK' print'OK'