convert: strip optional attributes out of empty maps #198
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.
We had previously fixed this for lists and sets in #135.
There's a thread in that PR that asks why not for maps as well. At the time the issue wasn't being reproduced for maps in the same way because maps perform a post-conversion unification here. This was stripping the optional attributes out in the original test case for maps, explaining why we didn't see this in maps before.
The new test cases uses maps in a way that the unification logic isn't called (by only using empty maps without nesting) and now exposes the same problem.
@apparentlymart, I'm not sure if we also want to add the same unification logic to the other collections as well? But either way, I think stripping the optional attributes out of the map is the right thing to do and I probably should have just done it last time even though there was some unexplained behaviour as to why it wasn't needed.