From f19478d5e39e9512bdbc73cd6510bd341d058128 Mon Sep 17 00:00:00 2001 From: usa Date: Wed, 19 Dec 2012 12:19:29 +0000 Subject: [PATCH] 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 --- ChangeLog | 5 +++++ parse.y | 3 ++- test/ruby/test_rubyoptions.rb | 2 ++ version.h | 2 +- 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 + + * 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 * 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