summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-compiler/core/parse.y')
-rw-r--r--mrbgems/mruby-compiler/core/parse.y8
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;
}