From: mame@... Date: 2019-12-16T15:15:45+00:00 Subject: [ruby-core:96270] [Ruby master Bug#10929] NilClass#to_proc and & don't mix? Issue #10929 has been updated by mame (Yusuke Endoh). Status changed from Open to Feedback The suggested change is harmful. It will break delegation: `def foo(&blk); bar(&blk); end; foo()`. Ruby allows redefinition of `Integer#/` which is incredibly harmful, so it is possible to allow `NilClass#to_proc`. But do you really want to allow that? ---------------------------------------- Bug #10929: NilClass#to_proc and & don't mix? https://bugs.ruby-lang.org/issues/10929#change-83169 * Author: trans (Thomas Sawyer) * Status: Feedback * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) * Target version: * ruby -v: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- This is sort of like a "who would ever care" kind of bug. Nonetheless technically it seems like it is one. So I thought it best that I report it just the same. ~~~ class NilClass def to_proc Proc.new{ |*x| nil } end end def f(&b) b.call(1) end f(&nil) => NoMethodError: undefined method `call' for nil:NilClass ~~~ (Maybe it was fixed already. Filing out this issue reminded me I need to update my version of Ruby.) ---Files-------------------------------- block_from_nil.patch (771 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: