Actions
Bug #15539
closedProc.new with no block shouldn't always warn
Bug #15539:
Proc.new with no block shouldn't always warn
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:
- https://github.com/rails/rails/blob/a08827a90b5a9be79379019cf5b242bd7236d2e3/actionpack/lib/action_controller/metal.rb#L29
- https://github.com/rails/rails/blob/a08827a90b5a9be79379019cf5b242bd7236d2e3/actionpack/lib/action_dispatch/middleware/stack.rb#L100
- https://github.com/rails/rails/blob/a08827a90b5a9be79379019cf5b242bd7236d2e3/activerecord/lib/active_record/statement_cache.rb#L116
- https://github.com/rails/rails/blob/a08827a90b5a9be79379019cf5b242bd7236d2e3/activesupport/lib/active_support/notifications/fanout.rb#L21
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!
Actions