Actions
Feature #16129
closedCall initialize_clone with freeze: false if clone called with freeze: false
Status:
Closed
Assignee:
-
Target version:
-
Description
This makes it possible for initialize_clone
to correctly not freeze internal state if the freeze: false
keyword is passed to clone
.
If clone
is called with freeze: true
or no keyword, do not pass a second argument to initialize_clone
to keep backwards compatibility.
This makes it so that external libraries that override initialize_clone
but do not support the freeze keyword will fail with ArgumentError
if passing freeze: false
to clone
. I think that is better than the current behavior, which succeeds but results in an unfrozen object with frozen internals.
The attached patch implements this support and fixes related issues in set and delegate in stdlib.
Files
Actions
Like0
Like0Like0