Project

General

Profile

Actions

Bug #7765

closed

Proc#arity bug with optional argument

Added by marcandre (Marc-Andre Lafortune) about 11 years ago. Updated about 11 years ago.

Status:
Closed
Target version:
ruby -v:
r38984
Backport:
[ruby-core:51785]

Description

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

Actions

Also available in: Atom PDF

Like0
Like0