diff --git a/src/frozendict/cool.py b/src/frozendict/cool.py index b38d027..46b0990 100644 --- a/src/frozendict/cool.py +++ b/src/frozendict/cool.py @@ -280,8 +280,8 @@ def deepfreeze( o_copy = copy(o) - for k, v in getItems(o)(o_copy): - o[k] = deepfreeze( + for k, v in getItems(o_copy)(o_copy): + o_copy[k] = deepfreeze( v, custom_converters = custom_converters, custom_inverse_converters = custom_inverse_converters @@ -295,7 +295,7 @@ def deepfreeze( else: raise - return freeze(o) + return freeze(o_copy) __all__ = ( diff --git a/test/test_freeze.py b/test/test_freeze.py index fcd85a3..4d00a60 100644 --- a/test/test_freeze.py +++ b/test/test_freeze.py @@ -181,4 +181,14 @@ def test_prefer_forward(): custom_inverse_converters={FrozenSeqA: MutableSeq} )[0], FrozenSeqB - ) \ No newline at end of file + ) + +def test_original_immutate(): + unfrozen = { + "int": 1, + "nested": {"int": 1}, + } + + frozen = cool.deepfreeze(unfrozen) + + assert type(unfrozen["nested"]) is dict