Issue #7765 has been reported by marcandre (Marc-Andre Lafortune).

----------------------------------------
Bug #7765: Proc#arity bug with optional argument
https://bugs.ruby-lang.org/issues/7765

Author: marcandre (Marc-Andre Lafortune)
Status: Open
Priority: Normal
Assignee: marcandre (Marc-Andre Lafortune)
Category: core
Target version: 2.0.0
ruby -v: r38984


We have:

    Proc.new{|a, b, c, d, e|}.arity # => 5

Matz decided [ruby-core:46515] we also have:

    Proc.new{|a, b, c, d, e=0|}.arity # => 4

It looks like we currently have:

    Proc.new{|a, b=0, c, d, e|}.arity # => 1, should be same as above

Hopefully there won't be disagreement that this is a bug?

I'm asking in particular because there was a specific test committed by Yui to that effect. I hope this was just an oversight?

    assert_equal(0, proc{|x=0, y|}.arity)    # Should be 1, not 0.   test/ruby/test_proc.rb:67

My patch is ready and I will commit it unless there is objection.

https://github.com/marcandre/ruby/compare/marcandre:trunk...marcandre:proc_curry          


-- 
http://bugs.ruby-lang.org/