Issue #7216 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to akr (Akira Tanaka)
Target version set to 2.0.0

Akr-san, what do you think?

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
Bug #7216: object.c defines clone method for objects that cannot be cloned.
https://bugs.ruby-lang.org/issues/7216#change-32416

Author: therevmj (Michael Johnson)
Status: Assigned
Priority: Normal
Assignee: akr (Akira Tanaka)
Category: core
Target version: 2.0.0
ruby -v: all versions up to current trunk


As the subject says, in object.c, the clone method is defined and then special cased for certain object types.  The end result is that all respond_to?(:clone) returns true for all objects, but then thows an fatal error in some cases.  Here is an appropriate example:

>> a = true
=> true
>> a.respond_to?(:clone)
=> true
>> a.clone
TypeError: can't clone TrueClass
	from (irb):3:in `clone'
	from (irb):3

Ultimately, the objects that do no respond to 'clone' should have it removed so that the respond_to? method returns false.


-- 
http://bugs.ruby-lang.org/