summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-01-16 08:35:53 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-01-16 08:35:53 +0000
commited5aa4217cf41b2122a01c79a970cd74593fabbc (patch)
treeba9cea8d410e535eeba9e00c566acc45a1c20605
parent008c7b108ba6eba727511fd9b03e9b8f8f69b38f (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--ChangeLog5
-rw-r--r--parse.y4
-rw-r--r--test/ripper/test_parser_events.rb22
-rw-r--r--version.h2
4 files changed, 27 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index afffc2421a..895c213d85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/parse.y b/parse.y
index 8f1a930f38..fe73627fa0 100644
--- a/parse.y
+++ b/parse.y
@@ -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
diff --git a/version.h b/version.h
index d248fb4ccc..947b3e7fcd 100644
--- a/version.h
+++ b/version.h
@@ -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