ruby-changes:2695
From: ko1@a...
Date: 11 Dec 2007 01:23:08 +0900
Subject: [ruby-changes:2695] matz - Ruby:r14186 (trunk): * parse.y (shadowing_lvar_gen): no duplicate error for "_".
matz 2007-12-11 01:22:52 +0900 (Tue, 11 Dec 2007) New Revision: 14186 Modified files: trunk/ChangeLog trunk/parse.y trunk/version.h Log: * parse.y (shadowing_lvar_gen): no duplicate error for "_". http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=14186&r2=14185 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=14186&r2=14185 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14186&r2=14185 Index: ChangeLog =================================================================== --- ChangeLog (revision 14185) +++ ChangeLog (revision 14186) @@ -1,3 +1,7 @@ +Tue Dec 11 01:21:21 2007 Yukihiro Matsumoto <matz@r...> + + * parse.y (shadowing_lvar_gen): no duplicate error for "_". + Mon Dec 10 22:08:47 2007 Akinori MUSHA <knu@i...> * array.c (rb_ary_slice_bang): If an invalid range is given, do Index: parse.y =================================================================== --- parse.y (revision 14185) +++ parse.y (revision 14186) @@ -7626,20 +7626,24 @@ static void shadowing_lvar_gen(struct parser_params *parser, ID name) { - if (dyna_in_block()) { - if (dvar_curr(name)) { - yyerror("duplicated argument name"); - } - else if (dvar_defined(name) || local_id(name)) { - rb_warningS("shadowing outer local variable - %s", rb_id2name(name)); - vtable_add(lvtbl->vars, name); - } - } - else { - if (local_id(name)) { - yyerror("duplicated argument name"); - } - } + static ID uscore; + + if (!uscore) uscore = rb_intern("_"); + if (uscore == name) return; + if (dyna_in_block()) { + if (dvar_curr(name)) { + yyerror("duplicated argument name"); + } + else if (dvar_defined(name) || local_id(name)) { + rb_warningS("shadowing outer local variable - %s", rb_id2name(name)); + vtable_add(lvtbl->vars, name); + } + } + else { + if (local_id(name)) { + yyerror("duplicated argument name"); + } + } } static void Index: version.h =================================================================== --- version.h (revision 14185) +++ version.h (revision 14186) @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2007-12-10" +#define RUBY_RELEASE_DATE "2007-12-11" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20071210 +#define RUBY_RELEASE_CODE 20071211 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2007 #define RUBY_RELEASE_MONTH 12 -#define RUBY_RELEASE_DAY 10 +#define RUBY_RELEASE_DAY 11 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml