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

ruby-changes:18123

From: nobu <ko1@a...>
Date: Wed, 8 Dec 2010 21:36:27 +0900 (JST)
Subject: [ruby-changes:18123] Ruby:r30144 (trunk): * parse.y (shadowing_lvar_gen): fix line number.

nobu	2010-12-08 21:36:20 +0900 (Wed, 08 Dec 2010)

  New Revision: 30144

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

  Log:
    * parse.y (shadowing_lvar_gen): fix line number.  [ruby-dev:42718]

  Modified files:
    trunk/ChangeLog
    trunk/parse.y
    trunk/test/ruby/test_rubyoptions.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 30143)
+++ ChangeLog	(revision 30144)
@@ -1,3 +1,7 @@
+Wed Dec  8 21:36:16 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* parse.y (shadowing_lvar_gen): fix line number.  [ruby-dev:42718]
+
 Wed Dec  8 20:37:11 2010  Tanaka Akira  <akr@f...>
 
 	* dir.c: parenthesize macro arguments.
Index: parse.y
===================================================================
--- parse.y	(revision 30143)
+++ parse.y	(revision 30144)
@@ -8269,7 +8269,7 @@
 	    rb_warningS("shadowing outer local variable - %s", rb_id2name(name));
 	    vtable_add(lvtbl->vars, name);
 	    if (lvtbl->used) {
-		vtable_add(lvtbl->used, name);
+		vtable_add(lvtbl->used, (ID)ruby_sourceline);
 	    }
 	}
     }
Index: test/ruby/test_rubyoptions.rb
===================================================================
--- test/ruby/test_rubyoptions.rb	(revision 30143)
+++ test/ruby/test_rubyoptions.rb	(revision 30144)
@@ -454,8 +454,20 @@
     assert_in_out_err(["-we", "def foo\n  eval('a=1')\nend"], "", [], [], feature3446)
     assert_in_out_err(["-we", "1.times do\n  a=1\nend"], "", [], [], feature3446)
     assert_in_out_err(["-we", "def foo\n  1.times do\n    a=1\n  end\nend"], "", [], ["-e:3: warning: assigned but unused variable - a"], feature3446)
+    assert_in_out_err(["-we", "def foo\n""  1.times do |a| end\n""end"], "", [], [])
   end
 
+  def test_shadowing_variable
+    bug4130 = '[ruby-dev:42718]'
+    assert_in_out_err(["-we", "def foo\n""  a=1\n""  1.times do |a| end\n""  a\n""end"],
+                      "", [], ["-e:3: warning: shadowing outer local variable - a"], bug4130)
+    assert_in_out_err(["-we", "def foo\n""  a=1\n""  1.times do |a| end\n""end"],
+                      "", [],
+                      ["-e:3: warning: shadowing outer local variable - a",
+                       "-e:2: warning: assigned but unused variable - a",
+                      ], bug4130)
+  end
+
   def test_script_from_stdin
     begin
       require 'pty'

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

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