summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-19 12:19:29 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-19 12:19:29 +0000
commitf19478d5e39e9512bdbc73cd6510bd341d058128 (patch)
tree05bdb9a1ee8345b4acfeabd0309c7bc103d47ccb
parent59995abc1ea07a2278a9f87b66587c65486e01da (diff)
merge revision(s) 38039: [Backport #7408]
* parse.y (parser_yylex): fix false usage of local variable, it cannot appear in fname state [ruby-core:49659] [Bug #7408] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@38470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--parse.y3
-rw-r--r--test/ruby/test_rubyoptions.rb2
-rw-r--r--version.h2
4 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5bee6dbcf9..595b5d6b8e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Dec 19 21:15:29 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (parser_yylex): fix false usage of local variable, it cannot
+ appear in fname state [ruby-core:49659] [Bug #7408]
+
Wed Dec 19 21:14:28 2012 Narihiro Nakamura <authornari@gmail.com>
* gc.c: return true or false. Patch by Dirkjan Bussink. [Bug #6821]
diff --git a/parse.y b/parse.y
index a006b56357..dbb10fd698 100644
--- a/parse.y
+++ b/parse.y
@@ -7923,7 +7923,8 @@ parser_yylex(struct parser_params *parser)
ID ident = TOK_INTERN(!ENC_SINGLE(mb));
set_yylval_name(ident);
- if (last_state != EXPR_DOT && is_local_id(ident) && lvar_defined(ident)) {
+ if (last_state != EXPR_DOT && last_state != EXPR_FNAME &&
+ is_local_id(ident) && lvar_defined(ident)) {
lex_state = EXPR_END;
}
}
diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb
index 0f883420d7..5533ac2c8e 100644
--- a/test/ruby/test_rubyoptions.rb
+++ b/test/ruby/test_rubyoptions.rb
@@ -489,6 +489,8 @@ class TestRubyOptions < Test::Unit::TestCase
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"], "", [], [])
+ 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)
end
def test_shadowing_variable
diff --git a/version.h b/version.h
index b803415eb7..dfd25f4824 100644
--- a/version.h
+++ b/version.h
@@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.3"
-#define RUBY_PATCHLEVEL 343
+#define RUBY_PATCHLEVEL 344
#define RUBY_RELEASE_DATE "2012-12-19"
#define RUBY_RELEASE_YEAR 2012