From: merch-redmine@... Date: 2020-03-16T16:32:22+00:00 Subject: [ruby-core:97530] [Ruby master Feature#16175] Object#clone(freeze: true) is inconsistent with Object#clone(freeze: false) Issue #16175 has been updated by jeremyevans0 (Jeremy Evans). I'll work on implementing this after https://github.com/ruby/ruby/pull/2954 is merged or closed, as I don't want to cause conflicts for that pull request. ---------------------------------------- Feature #16175: Object#clone(freeze: true) is inconsistent with Object#clone(freeze: false) https://bugs.ruby-lang.org/issues/16175#change-84691 * Author: zverok (Victor Shepelev) * Status: Open * Priority: Normal ---------------------------------------- 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) clone-freeze-true-16175.patch (4.42 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: