Project

General

Profile

Actions

Bug #8411

closed

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

Added by JFlash (John Amicangelo) over 11 years ago. Updated over 10 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-darwin12.3.0]
[ruby-core:55013]

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

Updated by steveklabnik (Steve Klabnik) over 11 years ago

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

Updated by hsbt (Hiroshi SHIBATA) over 10 years 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.

Actions

Also available in: Atom PDF

Like0
Like0Like0