aboutsummaryrefslogtreecommitdiff
path: root/lparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'lparser.c')
-rw-r--r--lparser.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lparser.c b/lparser.c
index a07044b8..e015dfc5 100644
--- a/lparser.c
+++ b/lparser.c
@@ -304,7 +304,7 @@ static void check_readonly (LexState *ls, expdesc *e) {
304 break; 304 break;
305 } 305 }
306 case VVARGIND: { 306 case VVARGIND: {
307 fs->f->flag |= PF_VATAB; /* function will need a vararg table */ 307 needvatab(fs->f); /* function will need a vararg table */
308 e->k = VINDEXED; 308 e->k = VINDEXED;
309 } /* FALLTHROUGH */ 309 } /* FALLTHROUGH */
310 case VINDEXUP: case VINDEXSTR: case VINDEXED: { /* global variable */ 310 case VINDEXUP: case VINDEXSTR: case VINDEXED: { /* global variable */
@@ -1057,7 +1057,7 @@ static void constructor (LexState *ls, expdesc *t) {
1057 1057
1058 1058
1059static void setvararg (FuncState *fs) { 1059static void setvararg (FuncState *fs) {
1060 fs->f->flag |= PF_ISVARARG; 1060 fs->f->flag |= PF_VAHID; /* by default, use hidden vararg arguments */
1061 luaK_codeABC(fs, OP_VARARGPREP, 0, 0, 0); 1061 luaK_codeABC(fs, OP_VARARGPREP, 0, 0, 0);
1062} 1062}
1063 1063
@@ -1283,7 +1283,7 @@ static void simpleexp (LexState *ls, expdesc *v) {
1283 } 1283 }
1284 case TK_DOTS: { /* vararg */ 1284 case TK_DOTS: { /* vararg */
1285 FuncState *fs = ls->fs; 1285 FuncState *fs = ls->fs;
1286 check_condition(ls, fs->f->flag & PF_ISVARARG, 1286 check_condition(ls, isvararg(fs->f),
1287 "cannot use '...' outside a vararg function"); 1287 "cannot use '...' outside a vararg function");
1288 init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, fs->f->numparams, 1)); 1288 init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, fs->f->numparams, 1));
1289 break; 1289 break;