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.
Empty lists that are actually present in the protocol should be decoded as [], not as nil.
This typically does not matter because the accessor methods on a struct work the same on a nil slice an empty slice.
But it does matter if we re-serialize the struct using some different method, e.g. and most notably the go json package.
In that case, nil values would be presented as
null
rather than[]
in the serialized json. The generated struct includes annotations on the fields (omitempty
) that make so that this does not happen in most common cases (i.e. struct fields that are empty lists). Unfortunately it is not-too-hard to devise examples where thesenull
values actually make it to the serialized json (e.g. using a list<list>; if you were to decode [[1,2], []] this would later be encoded to json as [[1,2], null]).