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).
The
desc/sourceinfo
package previously wrapped descriptors, by returning an implementation of the variousprotoreflect.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).