diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-01-16 08:35:53 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-01-16 08:35:53 +0000 |
commit | ed5aa4217cf41b2122a01c79a970cd74593fabbc (patch) | |
tree | ba9cea8d410e535eeba9e00c566acc45a1c20605 | |
parent | 008c7b108ba6eba727511fd9b03e9b8f8f69b38f (diff) |
merge revision(s) 49140: [Backport #10693]
* parse.y (f_label): return tLABEL value as it is.
[ruby-core:67315] [Bug #10693]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | parse.y | 4 | ||||
-rw-r--r-- | test/ripper/test_parser_events.rb | 22 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 27 insertions, 6 deletions
@@ -1,3 +1,8 @@ +Fri Jan 16 17:34:57 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * parse.y (f_label): return tLABEL value as it is. + [ruby-core:67315] [Bug #10693] + Fri Jan 16 16:49:04 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com> * lib/net/http.rb (Net::HTTP#send_request): there is no response body @@ -4720,9 +4720,9 @@ f_arg : f_arg_item f_label : tLABEL { ID id = get_id($1); - $$ = formal_argument(id); - arg_var($$); + arg_var(formal_argument(id)); current_arg = id; + $$ = $1; } ; diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb index 883684aca1..08296a241e 100644 --- a/test/ripper/test_parser_events.rb +++ b/test/ripper/test_parser_events.rb @@ -751,15 +751,31 @@ class TestRipper::ParserEvents < Test::Unit::TestCase end def test_params + arg = nil thru_params = false - parse('a {||}', :on_params) {thru_params = true} + parse('a {||}', :on_params) {|_, *v| thru_params = true; arg = v} assert_equal true, thru_params + assert_equal [nil, nil, nil, nil, nil, nil, nil], arg thru_params = false - parse('a {|x|}', :on_params) {thru_params = true} + parse('a {|x|}', :on_params) {|_, *v| thru_params = true; arg = v} assert_equal true, thru_params + assert_equal [["x"], nil, nil, nil, nil, nil, nil], arg thru_params = false - parse('a {|*x|}', :on_params) {thru_params = true} + parse('a {|*x|}', :on_params) {|_, *v| thru_params = true; arg = v} assert_equal true, thru_params + assert_equal [nil, nil, "*x", nil, nil, nil, nil], arg + thru_params = false + parse('a {|x: 1|}', :on_params) {|_, *v| thru_params = true; arg = v} + assert_equal true, thru_params + assert_equal [nil, nil, nil, nil, [["x:", "1"]], nil, nil], arg + thru_params = false + parse('a {|x:|}', :on_params) {|_, *v| thru_params = true; arg = v} + assert_equal true, thru_params + assert_equal [nil, nil, nil, nil, [["x:", false]], nil, nil], arg + thru_params = false + parse('a {|**x|}', :on_params) {|_, *v| thru_params = true; arg = v} + assert_equal true, thru_params + assert_equal [nil, nil, nil, nil, nil, "x", nil], arg end def test_paren @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.2.0" #define RUBY_RELEASE_DATE "2015-01-16" -#define RUBY_PATCHLEVEL 12 +#define RUBY_PATCHLEVEL 13 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 1 |