Project

General

Profile

Actions

Bug #7765

closed

Proc#arity bug with optional argument

Added by marcandre (Marc-Andre Lafortune) almost 12 years ago. Updated almost 12 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 #1

Updated by marcandre (Marc-Andre Lafortune) almost 12 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r39007.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • proc.c: Add {*}_min_max_arity and refactor.
    [Bug #7765]

  • test/ruby/test_proc.rb: Fix wrong test

Actions

Also available in: Atom PDF

Like0
Like0