Fix when omitempties(T) = true is defined in StructTypes.foreachfield #50
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.
I noticed in some serialized JSON from JSON3.jl recently that some
fields were still getting serialized when I had defined
StructTypes.omitempties(::Type{MyType}) = true, which is a shorthandwe introduced when you want to omit empty values for any field in a
type. Unfortunately, we failed to update
StructTypes.foreachfieldtorespect this option and double unfortunately, the code still happened to
"work", i.e. not throw an error whether
omitemptiesreturned aBoolor
Tuple. The fix is pretty simple: ifomitemptiesreturnstrue,then we query the
fieldnamesof the struct.