Bug #11296 closed
Proc#arity returns weird value for non-lambda proc with optional arguments
Added by matz (Yukihiro Matsumoto) almost 10 years ago.
Updated almost 10 years ago.
Description
Proc.new(x=0){}.arity
returns 0, not -1 unlike lambdas.
I don't remember if it's intentional or not. Anyone remember?
Matz.
Status changed from Open to Feedback
Proc.new(x=0){}
raises an ArgumentError
for me, in 1.8..2.3.
i think matz means:
Proc . new (){ | x = 0 | }. arity # => 0
lambda { | x = 0 | }. arity # => -1
Hans, thank you. That's what I meant.
Kazuhiro, #7765 suggests that seems intentional.
After hearing opnion from others, I will close the issue (unless meaningful discussion starts).
Matz.
This is intentional, as per #5694 (note 22). It is not really related to #7765 .
FWIW, I still believe it was not the best decision.
Status changed from Feedback to Closed
Marc-Andre, thank you for the info. You have made the issue clear.
Now I can safely close the issue.
Matz.
Status changed from Closed to Rejected
Also available in: Atom
PDF
Like 0
Like 0 Like 0 Like 0 Like 0 Like 0 Like 0 Like 0