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