diff options
Diffstat (limited to 'mrbgems/mruby-compiler/core/parse.y')
| -rw-r--r-- | mrbgems/mruby-compiler/core/parse.y | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index d5778279f..2a8d3a060 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -302,8 +302,12 @@ local_add_f(parser_state *p, mrb_sym sym) node *n = p->locals->car; while (n) { if (sym(n->car) == sym) { - yyerror(p, "duplicated argument name"); - return; + mrb_int len; + const char* name = mrb_sym_name_len(p->mrb, sym, &len); + if (len > 0 && name[0] != '_') { + yyerror(p, "duplicated argument name"); + return; + } } n = n->cdr; } |
