[前][次][番号順一覧][スレッド一覧]

ruby-changes:18130

From: nobu <ko1@a...>
Date: Fri, 10 Dec 2010 10:24:29 +0900 (JST)
Subject: [ruby-changes:18130] Ruby:r30151 (trunk): * parse.y (lvar_defined_gen, shadowing_lvar_gen, dvar_defined): no

nobu	2010-12-09 20:14:42 +0900 (Thu, 09 Dec 2010)

  New Revision: 30151

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30151

  Log:
    * parse.y (lvar_defined_gen, shadowing_lvar_gen, dvar_defined): no
      warnings for unused method and block arguments.
      [ruby-dev:42718] [ruby-dev:42724]

  Modified files:
    trunk/ChangeLog
    trunk/parse.y

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 30150)
+++ ChangeLog	(revision 30151)
@@ -1,3 +1,9 @@
+Thu Dec  9 20:14:39 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* parse.y (lvar_defined_gen, shadowing_lvar_gen, dvar_defined): no
+	  warnings for unused method and block arguments.
+	  [ruby-dev:42718] [ruby-dev:42724]
+
 Thu Dec  9 19:25:49 2010  Tanaka Akira  <akr@f...>
 
 	* dln.c: parenthesize macro arguments.
Index: parse.y
===================================================================
--- parse.y	(revision 30150)
+++ parse.y	(revision 30151)
@@ -458,8 +458,9 @@
 static int dyna_in_block_gen(struct parser_params*);
 #define dyna_in_block() dyna_in_block_gen(parser)
 #define dyna_var(id) local_var(id)
-static int dvar_defined_gen(struct parser_params*,ID);
-#define dvar_defined(id) dvar_defined_gen(parser, id)
+static int dvar_defined_gen(struct parser_params*,ID,int);
+#define dvar_defined(id) dvar_defined_gen(parser, id, 0)
+#define dvar_defined_get(id) dvar_defined_gen(parser, id, 1)
 static int dvar_curr_gen(struct parser_params*,ID);
 #define dvar_curr(id) dvar_curr_gen(parser, id)
 
@@ -6194,7 +6195,7 @@
 static int
 lvar_defined_gen(struct parser_params *parser, ID id)
 {
-    return (dyna_in_block() && dvar_defined(id)) || local_id(id);
+    return (dyna_in_block() && dvar_defined_get(id)) || local_id(id);
 }
 
 /* emacsen -*- hack */
@@ -8257,6 +8258,8 @@
 #undef parser_yyerror
 }
 
+#define LVAR_USED ((int)1 << (sizeof(int) * CHAR_BIT - 1))
+
 static ID
 shadowing_lvar_gen(struct parser_params *parser, ID name)
 {
@@ -8265,11 +8268,11 @@
 	if (dvar_curr(name)) {
 	    yyerror("duplicated argument name");
 	}
-	else if (dvar_defined(name) || local_id(name)) {
+	else if (dvar_defined_get(name) || local_id(name)) {
 	    rb_warningS("shadowing outer local variable - %s", rb_id2name(name));
 	    vtable_add(lvtbl->vars, name);
 	    if (lvtbl->used) {
-		vtable_add(lvtbl->used, (ID)ruby_sourceline);
+		vtable_add(lvtbl->used, (ID)ruby_sourceline | LVAR_USED);
 	    }
 	}
     }
@@ -8950,8 +8953,6 @@
 }
 #endif /* !RIPPER */
 
-#define LVAR_USED ((int)1 << (sizeof(int) * CHAR_BIT - 1))
-
 static void
 warn_unused_var(struct parser_params *parser, struct local_vars *local)
 {
@@ -9125,7 +9126,7 @@
 }
 
 static int
-dvar_defined_gen(struct parser_params *parser, ID id)
+dvar_defined_gen(struct parser_params *parser, ID id, int get)
 {
     struct vtable *vars, *args, *used;
     int i;
@@ -9144,6 +9145,7 @@
 	}
 	args = args->prev;
 	vars = vars->prev;
+	if (get) used = 0;
 	if (used) used = used->prev;
     }
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]