diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-05-14 07:28:36 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-05-14 07:28:36 +0000 |
commit | 45f6cdcdd3d11de1bf7691f732bc967880b4caad (patch) | |
tree | 4b6ec9f40a3d7aaf03cf1a05e0e09e8bb72e6769 | |
parent | c80308119b134e63fbc776aca077118ce3e7db4c (diff) | |
download | ruby-45f6cdcdd3d11de1bf7691f732bc967880b4caad.tar.gz |
Bug #6403: reset states after empty args
* parse.y (f_arglist): should reset lexical states after empty
argument list with no parenthesis as well as parenthesized list,
so that reserved name method definition work. [ruby-dev:45626]
[Bug #6403]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | parse.y | 2 | ||||
-rw-r--r-- | test/ruby/test_syntax.rb | 5 |
3 files changed, 14 insertions, 0 deletions
@@ -1,3 +1,10 @@ +Mon May 14 16:28:36 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * parse.y (f_arglist): should reset lexical states after empty + argument list with no parenthesis as well as parenthesized list, + so that reserved name method definition work. [ruby-dev:45626] + [Bug #6403] + Mon May 14 00:14:24 2012 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org> * enumerator.c (lazy_take_func, lazy_take): multiple calls of @@ -4451,6 +4451,8 @@ f_arglist : '(' f_args rparen | f_args term { $$ = $1; + lex_state = EXPR_BEG; + command_start = TRUE; } ; diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index b792858090..7eef6d6066 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -176,6 +176,11 @@ class TestSyntax < Test::Unit::TestCase assert_valid_syntax("p begin 1.times do 1 end end", __FILE__, bug6419) end + def test_reserved_method_no_args + bug6403 = '[ruby-dev:45626]' + assert_valid_syntax("def self; :foo; end", __FILE__, bug6403) + end + private def not_label(x) @result = x; @not_label ||= nil end |