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

Backport deleted (2.5: UNKNOWN, 2.6: UNKNOWN)
Tracker changed from Bug to Feature

I agree with Jeremy.  It is not a bug.

I think that the wording of `freeze: false` is a bit confusing, but the document explains clearly.  Do you have a real-world use case for `clone(freeze: true)`?

Anyway, please do not modify the tracker.  Bug/Feature is not significant for you.  It is mainly used as an advice for branch maintainers: the change should be backported or not.

----------------------------------------
Feature #16175: Object#clone(freeze: true) is inconsistent with Object#clone(freeze: false)
https://bugs.ruby-lang.org/issues/16175#change-81663

* Author: zverok (Victor Shepelev)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
In #12300, the new keyword `freeze:` was introduced, allowing this:

```ruby
h = {}.freeze
h.clone.frozen?
# => true
h.clone(freeze: false).frozen?
# => false
```
Though, it turns to me that behavior is not symmetric:
```ruby
h = {}
h.frozen?
# => false
h.clone.frozen?
# => false
h.clone(freeze: true).frozen?
# => false -- I expected true here!
```
I wonder, if it is "by design" and should be addressed in docs, or just an implementation inconsistency that can be fixed?

---Files--------------------------------
freeze-true.patch (1.47 KB)


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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>