Issue #9487 has been reported by Atlas Prime.

----------------------------------------
Feature #9487: Add #dup?, #dup! and #clone? and #clone!
https://bugs.ruby-lang.org/issues/9487

* Author: Atlas Prime
* Status: Open
* Priority: Normal
* Assignee: 
* Category: core
* Target version: next minor
----------------------------------------
Some objects can't use #dup or #clone b/c they are singleton, like Integer. So an error is raised if one tries.

    > 5.dup
    TypeError: can't dup Fixnum


It would helpful if there was an easy way to check if this is so on an arbitrary object without having to go through the overhead of rescuing the TypeError. e.g.

    if o.dup?
      x = o.dup
      ...
      
Even more convenient in some cases would not having to worry about it at all. If the object can't be duplicated or cloned then just return the object itself.

    > 5.dup!
    5

The same for `#clone` with `#clone?` and `#clone!`.




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