summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-06 14:49:59 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-06 14:49:59 +0000
commita2d9317d04a32eb255885eb125d0657af684f4e9 (patch)
tree4372767c2abceea5be56848d7e7004dea52c0aa5
parentcd8b9033e625d84fc0cae4d8938c5afd0bfd48ce (diff)
merge revision(s) 64786: [Backport #15087]
parse.y: fix block passing with empty kwargs * parse.y (arg_blk_pass): preceeding arguments node may be NULL when an empty keyword argument hash splat is optimized away. [ruby-core:88890] [Bug #15087] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@65579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--parse.y1
-rw-r--r--test/ruby/test_keyword.rb7
-rw-r--r--version.h8
3 files changed, 11 insertions, 5 deletions
diff --git a/parse.y b/parse.y
index 7d5c7d23ef..b917a3d2f4 100644
--- a/parse.y
+++ b/parse.y
@@ -10789,6 +10789,7 @@ static NODE *
arg_blk_pass(NODE *node1, NODE *node2)
{
if (node2) {
+ if (!node1) return node2;
node2->nd_head = node1;
nd_set_first_lineno(node2, nd_first_lineno(node1));
nd_set_first_column(node2, nd_first_column(node1));
diff --git a/test/ruby/test_keyword.rb b/test/ruby/test_keyword.rb
index f4cc7bc9d6..8a45016c13 100644
--- a/test/ruby/test_keyword.rb
+++ b/test/ruby/test_keyword.rb
@@ -547,7 +547,8 @@ class TestKeywordArguments < Test::Unit::TestCase
def test_dynamic_symbol_keyword
bug10266 = '[ruby-dev:48564] [Bug #10266]'
- assert_separately(['-', bug10266], <<-'end;') # do
+ assert_separately(['-', bug10266], "#{<<~"begin;"}\n#{<<~'end;'}")
+ begin;
bug = ARGV.shift
"hoge".to_sym
assert_nothing_raised(bug) {eval("def a(hoge:); end")}
@@ -677,4 +678,8 @@ class TestKeywordArguments < Test::Unit::TestCase
obj.t(42)
end
end
+
+ def test_splat_empty_hash_with_block_passing
+ assert_valid_syntax("bug15087(**{}, &nil)")
+ end
end
diff --git a/version.h b/version.h
index f0d21837dc..8e8e0483d9 100644
--- a/version.h
+++ b/version.h
@@ -1,10 +1,10 @@
#define RUBY_VERSION "2.5.4"
-#define RUBY_RELEASE_DATE "2018-10-21"
-#define RUBY_PATCHLEVEL 107
+#define RUBY_RELEASE_DATE "2018-11-06"
+#define RUBY_PATCHLEVEL 108
#define RUBY_RELEASE_YEAR 2018
-#define RUBY_RELEASE_MONTH 10
-#define RUBY_RELEASE_DAY 21
+#define RUBY_RELEASE_MONTH 11
+#define RUBY_RELEASE_DAY 6
#include "ruby/version.h"