jhump / protoreflect

Reflection (Rich Descriptors) for Go Protocol Buffers
Apache License 2.0
1.35k stars 172 forks source link

minimal support v2 messages in *dynamic.Message #533

Closed jhump closed 2 years ago

jhump commented 2 years ago

In the V2 API, an extendable message can have extensions that are neither present in the return values from proto.ExtensionDescs nor in the message's unknown/unrecognized field bytes.

That means that they are simply dropped if such a message is converted to a *dynamic.Message.

This simple fix targets just the extensions in question and merges them into the dynamic message via marshalling to bytes and then unmarshalling.

While in here, the files I touched got reformetted with the Go 1.19 version of gofmt. And I also updated a few places that were relying on reflection to utilize newer(ish) features of the protobuf runtime (back when the version pinned was old enough that the simple/non-reflection logic wouldn't compile).