diff options
author | Jeremy Evans <code@jeremyevans.net> | 2019-11-27 09:03:00 -0800 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2019-11-27 20:03:27 +0200 |
commit | 299a13612e54accd9d3661bafde8f67142a78d54 (patch) | |
tree | 7582306ee4cdc1380e1789dcd466605bc0a57e5d /test/ruby/test_keyword.rb | |
parent | 6f27fa4f7d52bfaea4fd1bd7605bda28e302e74c (diff) |
Don't modify rest array when using ruby2_keywords
Previously, the rest array was modified, but it turns out that is
not necessary. Not modifying the rest array fixes cases when the
rest array is used more than once.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/2706
Diffstat (limited to 'test/ruby/test_keyword.rb')
-rw-r--r-- | test/ruby/test_keyword.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/test/ruby/test_keyword.rb b/test/ruby/test_keyword.rb index bbb107dedd..29335a4963 100644 --- a/test/ruby/test_keyword.rb +++ b/test/ruby/test_keyword.rb @@ -2649,6 +2649,11 @@ class TestKeywordArguments < Test::Unit::TestCase baz(*args) end + ruby2_keywords def foo_baz2(*args) + baz(*args) + baz(*args) + end + ruby2_keywords def foo_foo_bar(meth, *args) foo_bar(meth, *args) end @@ -2761,6 +2766,10 @@ class TestKeywordArguments < Test::Unit::TestCase h1 = {a: 1} o = c.new + assert_equal([1, h1], o.foo_baz2(1, :a=>1)) + assert_equal([1], o.foo_baz2(1, **{})) + assert_equal([h1], o.foo_baz2(h1, **{})) + assert_equal([[1], h1], o.foo(:bar, 1, :a=>1)) assert_equal([1, h1], o.foo(:baz, 1, :a=>1)) assert_equal([[1], h1], o.bfoo(:bar, 1, :a=>1)) |