mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
fix arity of lambdas with optional arguments
From the CRuby 2.2.2 Proc#arity documentation: If the block has optional arguments, returns -n-1, where n is the number of mandatory arguments, with the exception for blocks that are not lambdas and have only a finite number of optional arguments; in this latter case, returns n.
This commit is contained in:
@@ -36,6 +36,14 @@ assert('Proc#arity', '15.2.17.4.2') do
|
||||
assert_equal(-3, b)
|
||||
assert_equal 1, c
|
||||
assert_equal 1, d
|
||||
|
||||
e = ->(x=0, y){}.arity
|
||||
f = ->((x, y), z=0){}.arity
|
||||
g = ->(x=0){}.arity
|
||||
|
||||
assert_equal(-2, e)
|
||||
assert_equal(-2, f)
|
||||
assert_equal(-1, g)
|
||||
end
|
||||
|
||||
assert('Proc#call', '15.2.17.4.3') do
|
||||
|
||||
Reference in New Issue
Block a user