summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--parse.y3
-rw-r--r--test/ruby/test_rubyoptions.rb2
3 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 19c75d83aa..12ea3bb135 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jan 30 13:22:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (local_push_gen): warn assigned but unused variables also in
+ toplevel, except for -e option. [Feature #7730] [ruby-core:51580]
+
Wed Jan 30 13:17:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* cont.c (cont_restore_thread): svar should be separate per fibers.
diff --git a/parse.y b/parse.y
index cb42db7497..d950199f0b 100644
--- a/parse.y
+++ b/parse.y
@@ -9432,7 +9432,8 @@ local_push_gen(struct parser_params *parser, int inherit_dvars)
local->prev = lvtbl;
local->args = vtable_alloc(0);
local->vars = vtable_alloc(inherit_dvars ? DVARS_INHERIT : DVARS_TOPSCOPE);
- local->used = !inherit_dvars && RTEST(ruby_verbose) ? vtable_alloc(0) : 0;
+ local->used = !(inherit_dvars && ifndef_ripper(e_option_supplied(parser))+0) &&
+ RTEST(ruby_verbose) ? vtable_alloc(0) : 0;
lvtbl = local;
}
diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb
index 950fdd6922..c12ddb9f2e 100644
--- a/test/ruby/test_rubyoptions.rb
+++ b/test/ruby/test_rubyoptions.rb
@@ -551,6 +551,8 @@ class TestRubyOptions < Test::Unit::TestCase
assert_in_out_err(["-we", "def foo\n _a=1\nend"], "", [], [], feature6693)
bug7408 = '[ruby-core:49659]'
assert_in_out_err(["-we", "def foo\n a=1\n :a\nend"], "", [], ["-e:2: warning: assigned but unused variable - a"], bug7408)
+ feature7730 = '[ruby-core:51580]'
+ assert_in_out_err(["-w", "-"], "a=1", [], ["-:1: warning: assigned but unused variable - a"], feature7730)
end
def test_shadowing_variable