mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-01-29 00:32:43 +00:00
reflect/protodesc: fix group validation: not supported in proto3
Before this change, calling dynamicpb.NewMessage() on a protoreflect.MessageDescriptor that uses Editions would fail with: message field "[…].relatedqueries" is an invalid group: proto: invalid under proto2 semantics (While Go Protobuf does not yet support Editions, C++ programs can save descriptors to a file that is later loaded by a Go program.) Given that groups are only supported in proto2, but not in proto3 (see https://protobuf.dev/editions/features/#message_encoding), I think the conditional meant to say "proto3 semantics". Change-Id: I00368e4433ca60bb883b726e34ee6b8862cfd1e7 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/554955 Reviewed-by: Cassondra Foesch <cfoesch@gmail.com> Reviewed-by: Christian Höppner <hoeppi@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
18202d2782
commit
7c85df2652
@ -314,8 +314,8 @@ func checkValidGroup(fd protoreflect.FieldDescriptor) error {
|
||||
switch {
|
||||
case fd.Kind() != protoreflect.GroupKind:
|
||||
return nil
|
||||
case fd.Syntax() != protoreflect.Proto2:
|
||||
return errors.New("invalid under proto2 semantics")
|
||||
case fd.Syntax() == protoreflect.Proto3:
|
||||
return errors.New("invalid under proto3 semantics")
|
||||
case md == nil || md.IsPlaceholder():
|
||||
return errors.New("message must be resolvable")
|
||||
case fd.FullName().Parent() != md.FullName().Parent():
|
||||
|
Loading…
x
Reference in New Issue
Block a user