Bug #8411

Wrong value returned when arity called on a method created through define_method with default arguments

Added by John Amicangelo almost 2 years ago. Updated 8 months ago.

[ruby-core:55013]
Status:Rejected
Priority:Normal
Assignee:-
ruby -v:ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-darwin12.3.0] Backport:1.9.3: UNKNOWN, 2.0.0: UNKNOWN

Description

def foo(bizz=:bizz, baz=:baz, buzz=:buzz)
end

Object.send(:define_method, :bar) do |bizz=:bizz, baz=:baz, buzz=:buzz|
end

puts method(:foo).arity
puts method(:bar).arity

Expected:
-1
-1

Actual:
-1
0

History

#1 Updated by Steve Klabnik over 1 year ago

On my Ruby 2.0.0 and 2.1.0-dev, I get -1 and -1, so something was fixed somewhere.

#2 Updated by Hiroshi SHIBATA 8 months ago

  • Status changed from Open to Rejected

this issue is affected only Ruby 1.9.

ruby 1.9.3p547 (2014-05-14) [x86_64-darwin13.4.0]
-1
0

ruby 2.0.0p531 (2014-07-07 revision 46748) [x86_64-darwin13.4.0]
-1
-1

ruby 2.1.2p200 (2014-08-11 revision 47141) [x86_64-darwin13.0]
-1
-1

ruby 2.2.0dev (2014-08-14 trunk 47177) [x86_64-darwin13]
-1
-1

Ruby 1.9.3 is now in the security maintenance phase.

Also available in: Atom PDF