diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-03-25 02:22:14 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-03-25 02:22:14 +0000 |
commit | a23eca2672e68e4fa913b30c418080aa7a5d1cbf (patch) | |
tree | 6c936b975ce4b84e85bebb08232739dd0a354a41 /test/ruby | |
parent | 0de07300f088cde1014835f66ff9e7ef347a010a (diff) |
vm_args.c: warn splat to var
* vm_args.c (setup_parameters_complex): [EXPERIMENTAL] warn when
splat keyword arguments is passed as a single ordinary argument,
not as a keyword rest argument.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_keyword.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/test/ruby/test_keyword.rb b/test/ruby/test_keyword.rb index 9425e1df5d..59008f7d5b 100644 --- a/test/ruby/test_keyword.rb +++ b/test/ruby/test_keyword.rb @@ -507,6 +507,7 @@ class TestKeywordArguments < Test::Unit::TestCase m = Object.new def m.f() :ok; end def m.f2(a = nil) a; end + def m.f3(**a) a; end o = {a: 1} assert_raise_with_message(ArgumentError, /unknown keyword: a/) { m.f(**o) @@ -517,9 +518,16 @@ class TestKeywordArguments < Test::Unit::TestCase assert_equal(:ok, m.f(*a, **o), '[ruby-core:83638] [Bug #10856]') o = {a: 42} - assert_equal({a: 42}, m.f2(**o), '[ruby-core:82280] [Bug #13791]') + assert_warning(/splat keyword/) do + assert_equal({a: 42}, m.f2(**o), '[ruby-core:82280] [Bug #13791]') + end + assert_warning('') do + assert_equal({a: 42}, m.f3(**o), 'splat to kwrest') + end - assert_equal({a: 42}, m.f2("a".to_sym => 42), '[ruby-core:82291] [Bug #13793]') + assert_warning('') do + assert_equal({a: 42}, m.f2("a".to_sym => 42), '[ruby-core:82291] [Bug #13793]') + end o = {} a = [:ok] |