[ruby-core:96270] [Ruby master Bug#10929] NilClass#to_proc and & don't mix?
| Newsgroups | gmane.comp.lang.ruby.core |
|---|---|
| Message-ID | <redmine.journal-83169.20191216151544.892969f4953f878e@ruby-lang.org> |
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: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>