From: mame@... Date: 2019-09-22T10:52:35+00:00 Subject: [ruby-core:95032] [Ruby master Feature#16175] Object#clone(freeze: true) is inconsistent with Object#clone(freeze: false) 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: