summaryrefslogtreecommitdiff
path: root/test/ruby/test_keyword.rb
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-09-05 13:03:09 -0700
committerJeremy Evans <code@jeremyevans.net>2019-09-05 17:47:12 -0700
commite220b467ef3faf24140cba572b2d67973391aaa5 (patch)
tree3f210a81a03ffdcbf9da8b8a8c12606ea5971fd5 /test/ruby/test_keyword.rb
parente2878a96f77978b224f8461244cd3e1efc248d83 (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.rb16
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