Fix put_in_map/set_map_key not setting keys properly
#348
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In attempting to solve #347, I ran into other problems that all felt related enough to fix at once
put_in_mapandset_map_keywould produce an invalid "nested" map when inserting into an empty map (%{%{foo: bar}})put_in_mapandset_map_keywould call the updater, take its updated value, and then return the zipper at the position of the value. This was inconsistent with the non updater case (i.e. inserting a new key would point to the map itself), so I made these consistent.I recognize #2 is technically a breaking change, but I figured this couldn't have been intentionally inconsistent. If you would prefer a deprecation/new function, let me know.
Fixes #347
Contributor checklist
Leave anything that you believe does not apply unchecked.