Project

General

Profile

Bug #11296

Proc#arity returns weird value for non-lambda proc with optional arguments

Added by matz (Yukihiro Matsumoto) over 4 years ago. Updated over 4 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-dev:49127]

Description

Proc.new(x=0){}.arity returns 0, not -1 unlike lambdas.
I don't remember if it's intentional or not. Anyone remember?

Matz.

History

Updated by nobu (Nobuyoshi Nakada) over 4 years ago

  • Status changed from Open to Feedback

Proc.new(x=0){} raises an ArgumentError for me, in 1.8..2.3.

Updated by Hanmac (Hans Mackowiak) over 4 years ago

i think matz means:

Proc.new(){|x=0|}.arity # => 0 
lambda {|x=0|}.arity # => -1 

Updated by znz (Kazuhiro NISHIYAMA) over 4 years ago

I think #5694 and #7765 are related issues.

Updated by matz (Yukihiro Matsumoto) over 4 years ago

Hans, thank you. That's what I meant.
Kazuhiro, #7765 suggests that seems intentional.
After hearing opnion from others, I will close the issue (unless meaningful discussion starts).

Matz.

Updated by marcandre (Marc-Andre Lafortune) over 4 years ago

This is intentional, as per #5694 (note 22). It is not really related to #7765.

FWIW, I still believe it was not the best decision.

Updated by matz (Yukihiro Matsumoto) over 4 years ago

  • Status changed from Feedback to Closed

Marc-Andre, thank you for the info. You have made the issue clear.
Now I can safely close the issue.

Matz.

Updated by usa (Usaku NAKAMURA) over 4 years ago

  • Status changed from Closed to Rejected

Also available in: Atom PDF