Bug #8411

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

Added by John Amicangelo 11 months ago. Updated 9 months ago.

[ruby-core:55013]
Status:Open
Priority:Normal
Assignee:-
Category:-
Target version:-
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 9 months ago

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

Also available in: Atom PDF