diff options
author | Jeremy Evans <code@jeremyevans.net> | 2019-09-05 13:03:09 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2019-09-05 17:47:12 -0700 |
commit | e220b467ef3faf24140cba572b2d67973391aaa5 (patch) | |
tree | 3f210a81a03ffdcbf9da8b8a8c12606ea5971fd5 /test/ruby/test_keyword.rb | |
parent | e2878a96f77978b224f8461244cd3e1efc248d83 (diff) |
Convert empty keyword hash to required positional argument and warn for sym procs
This is the same as the bmethod and send cases, where we don't
remove the keyword splat, so later code can move it to to a
a required positional parameter and warn.
Diffstat (limited to 'test/ruby/test_keyword.rb')
-rw-r--r-- | test/ruby/test_keyword.rb | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/test/ruby/test_keyword.rb b/test/ruby/test_keyword.rb index c5b9c15ba9..2a99feb2de 100644 --- a/test/ruby/test_keyword.rb +++ b/test/ruby/test_keyword.rb @@ -633,8 +633,12 @@ class TestKeywordArguments < Test::Unit::TestCase def c.m(args) args end - assert_raise(ArgumentError) { :m.to_proc.call(c, **{}) } - assert_raise(ArgumentError) { :m.to_proc.call(c, **kw) } + assert_warn(/The keyword argument is passed as the last hash parameter.* for `m'/m) do + assert_equal(kw, :m.to_proc.call(c, **{})) + end + assert_warn(/The keyword argument is passed as the last hash parameter.* for `m'/m) do + assert_equal(kw, :m.to_proc.call(c, **kw)) + end assert_equal(h, :m.to_proc.call(c, **h)) assert_equal(h, :m.to_proc.call(c, a: 1)) assert_equal(h2, :m.to_proc.call(c, **h2)) @@ -657,8 +661,12 @@ class TestKeywordArguments < Test::Unit::TestCase def c.m(arg, **args) [arg, args] end - assert_raise(ArgumentError) { :m.to_proc.call(c, **{}) } - assert_raise(ArgumentError) { :m.to_proc.call(c, **kw) } + assert_warn(/The keyword argument is passed as the last hash parameter.* for `m'/m) do + assert_equal([kw, kw], :m.to_proc.call(c, **{})) + end + assert_warn(/The keyword argument is passed as the last hash parameter.* for `m'/m) do + assert_equal([kw, kw], :m.to_proc.call(c, **kw)) + end assert_warn(/The keyword argument is passed as the last hash parameter.* for `m'/m) do assert_equal([h, kw], :m.to_proc.call(c, **h)) end |