diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-12-25 23:05:42 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-12-27 10:55:17 +0900 |
| commit | 27e57aad0beb6b8ed3797f867d5f76da7fc942bb (patch) | |
| tree | 8f83a3b3afc75920bc964befa37ebf56f69483b1 /mrbgems/mruby-compiler/core/parse.y | |
| parent | e6b64139325c26581d19b5bd6ad9139ff6c7d29e (diff) | |
| download | mruby-27e57aad0beb6b8ed3797f867d5f76da7fc942bb.tar.gz mruby-27e57aad0beb6b8ed3797f867d5f76da7fc942bb.zip | |
parse.y: prohibit numbered parameters as arguments; fix #5605
Diffstat (limited to 'mrbgems/mruby-compiler/core/parse.y')
| -rw-r--r-- | mrbgems/mruby-compiler/core/parse.y | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index 2a8d3a060..de905e33f 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -2751,6 +2751,7 @@ primary : literal | tLAMBDA { local_nest(p); + nvars_nest(p); $<num>$ = p->lpar_beg; p->lpar_beg = ++p->paren_nest; } @@ -2764,6 +2765,7 @@ primary : literal p->lpar_beg = $<num>2; $$ = new_lambda(p, $3, $5); local_unnest(p); + nvars_unnest(p); p->cmdarg_stack = $<stack>4; CMDARG_LEXPOP(); } @@ -6426,14 +6428,9 @@ parser_yylex(parser_state *p) if (nvar == -1) { yywarning(p, "numbered parameter used in inner block"); } - if (nvar >= -1) { - pylval.num = n; - p->lstate = EXPR_END; - return tNUMPARAM; - } - else { - yywarning(p, "identifier for numbered parameter; consider another name"); - } + pylval.num = n; + p->lstate = EXPR_END; + return tNUMPARAM; } } /* fall through */ |
