From de7313b557a34d156f85c4ec973595568b65ec9c Mon Sep 17 00:00:00 2001 From: Herbie Ong Date: Mon, 14 Jan 2019 19:26:50 -0800 Subject: [PATCH] encoding/textpb: fix marshaling repeated group field name In https://golang.org/cl/157821, I attempted to fix handling of group field names but forgot about repeated group fields as I forgot to properly update the marshaling tests as well for it. Unmarshal logic for both repeated and non-repeated was already fixed in that CL. Change-Id: Icb4a00d8b169709ca12dfee272b2bd73e7585e6e Reviewed-on: https://go-review.googlesource.com/c/157857 Reviewed-by: Damien Neil --- encoding/textpb/encode.go | 9 +++++---- encoding/textpb/encode_test.go | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/encoding/textpb/encode.go b/encoding/textpb/encode.go index 77606dad..54f4f545 100644 --- a/encoding/textpb/encode.go +++ b/encoding/textpb/encode.go @@ -127,6 +127,11 @@ func (o MarshalOptions) marshalMessage(m pref.Message) (text.Value, error) { func (o MarshalOptions) appendField(msgFields [][2]text.Value, tname text.Value, pval pref.Value, fd pref.FieldDescriptor) ([][2]text.Value, error) { var nerr errors.NonFatal + // Use type name for group field name. + if fd.Kind() == pref.GroupKind { + tname = text.ValueOf(fd.MessageType().Name()) + } + if fd.Cardinality() == pref.Repeated { // Map or repeated fields. var items []text.Value @@ -153,10 +158,6 @@ func (o MarshalOptions) appendField(msgFields [][2]text.Value, tname text.Value, if !nerr.Merge(err) { return msgFields, err } - // Use type name for group field name. - if fd.Kind() == pref.GroupKind { - tname = text.ValueOf(fd.MessageType().Name()) - } msgFields = append(msgFields, [2]text.Value{tname, tval}) } diff --git a/encoding/textpb/encode_test.go b/encoding/textpb/encode_test.go index 15a54928..fe4271d8 100644 --- a/encoding/textpb/encode_test.go +++ b/encoding/textpb/encode_test.go @@ -537,11 +537,11 @@ rpt_nested: {} {}, }, }, - want: `rptgroup: { + want: `RptGroup: { rpt_bool: true rpt_bool: false } -rptgroup: {} +RptGroup: {} `, }, { desc: "map fields empty",