Optional entry support for map and message literal construction #603
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.
Introduces parse, type-check, and runtime support for optional entry construction on map and message literals, including:
{?key: a.?b}
- create a newmap
with a dynamickey
if the fieldb
is set on objecta
Msg{?item: list[?0]}
- create a newMsg
with theitem
field set if thelist
contains at least one element.If all of the fields in the object are empty, then using the
optional.ofNonZeroValue()
call with the result makes it possible to returnoptional.none()
if the value is empty. This is useful for setting optional fields where the value is a map or message type