Project

General

Profile

Bug #15539

Proc.new with no block shouldn't always warn

Added by tenderlovemaking (Aaron Patterson) almost 2 years ago. Updated almost 2 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:91109]

Description

Hi,

r66772 introduced a warning for the following code:

def foo bar = Proc.new
  bar.call
end

foo      { p "block" } # warn
foo ->() { p "block" } # no warn

I don't think this case of Proc.new should warn. To eliminate warnings, I have to rewrite as:

def foo bar = nil
  if bar
    bar.call
  else
    yield
  end
end

Rails uses this "Proc.new" trick here:

I can change Rails, but I want to know why and I don't see any discussion of r66772 (the commit doesn't have a feature number).

Thanks!

Also available in: Atom PDF