mirror of
https://github.com/lua/lua
synced 2026-09-26 16:17:11 +03:00
Global initialization checks name conflict
Initialization "global a = 10" raises an error if global 'a' is already defined, that is, it has a non-nil value.
This commit is contained in:
parent
f791bb6906
commit
e44f3a2ffc
13 changed files with 87 additions and 9 deletions
8
ldebug.c
8
ldebug.c
|
|
@ -814,6 +814,14 @@ l_noret luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) {
|
|||
}
|
||||
|
||||
|
||||
l_noret luaG_errnnil (lua_State *L, LClosure *cl, int k) {
|
||||
const char *globalname = "?"; /* default name if k == 0 */
|
||||
if (k > 0)
|
||||
kname(cl->p, k - 1, &globalname);
|
||||
luaG_runerror(L, "global '%s' already defined", globalname);
|
||||
}
|
||||
|
||||
|
||||
/* add src:line information to 'msg' */
|
||||
const char *luaG_addinfo (lua_State *L, const char *msg, TString *src,
|
||||
int line) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue