diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-03-19 01:11:12 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-03-19 01:11:12 +0000 |
commit | 976becf7eb18aa1592c703ac4d86a2cf9dfa701e (patch) | |
tree | ea2cf60b1ebf58b756e896484440036f5f3ba2cd /test | |
parent | a9d575e507e1ce181ed71b9a7d4c3ad4f2f23e59 (diff) | |
download | ruby-976becf7eb18aa1592c703ac4d86a2cf9dfa701e.tar.gz |
vm_args.c: arity check of lambda
* vm_eval.c (rb_yield_lambda): new function which yields an array
to a proc and splat to a lambda. mainly for Enumerable only.
* vm_args.c (setup_parameters_complex): remove special lambda
splatting for [Bug #9605]. [ruby-core:77065] [Bug #12705]
* vm_insnhelper.c (vm_callee_setup_block_arg): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_lambda.rb | 6 | ||||
-rw-r--r-- | test/ruby/test_yield.rb | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/test/ruby/test_lambda.rb b/test/ruby/test_lambda.rb index 826bfcf203..3ac2e4cb98 100644 --- a/test/ruby/test_lambda.rb +++ b/test/ruby/test_lambda.rb @@ -101,6 +101,12 @@ class TestLambdaParameters < Test::Unit::TestCase assert_equal(:ok, x, bug13090) end + def test_arity_error + assert_raise(ArgumentError, '[Bug #12705]') do + [1, 2].tap(&lambda {|a, b|}) + end + end + def foo assert_equal(nil, ->(&b){ b }.call) end diff --git a/test/ruby/test_yield.rb b/test/ruby/test_yield.rb index 0690d3cdf4..9b2b2f37e0 100644 --- a/test/ruby/test_yield.rb +++ b/test/ruby/test_yield.rb @@ -245,7 +245,7 @@ class TestRubyYieldGen < Test::Unit::TestCase throw :emuerror, ArgumentError end else - if args.length != params.length and !(args.length == 1 and Array === args[0] and args[0].length == params.length) + if args.length != params.length throw :emuerror, ArgumentError end end |