jhump / protoreflect

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

Update desc/sourceinfo to not wrap descriptors #622

Closed jhump closed 1 week ago

jhump commented 2 weeks ago

The desc/sourceinfo package previously wrapped descriptors, by returning an implementation of the various protoreflect.Descriptor interfaces that embedded the original descriptor values. However, these various interfaces are all defined as "do not implement". So, to avoid future issues where the protobuf runtime may type-assert implementations to their own internal types (which would panic/fail with the concrete wrapper types in this package), we no longer wrap this way.

This also happens to resolve #618 (since there's no more wrapping, an incorrect typed-nil wrapper can't escape).