all: rename ExtensionType Descriptor method to TypeDescriptor (1/2)
Descriptor methods generally return a Descriptor with no Go type
information. ExtensionType's Descriptor is an exception, returning an
ExtensionTypeDescriptor containing both the proto descriptor and a
reference back to the ExtensionType. The pure descriptor is accessed
by xt.Descriptor().Descriptor().
Rename ExtensionType's Descriptor method to TypeDescriptor to make it
clear that it behaves a bit differently.
Change 1/2: Add the TypeDescriptor method and deprecate Descriptor.
Change-Id: I1806095044d35a474d60f94d2a28bdf528f12238
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/192139
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/internal/impl/codec_extension.go b/internal/impl/codec_extension.go
index 7e430ee..8a999ef 100644
--- a/internal/impl/codec_extension.go
+++ b/internal/impl/codec_extension.go
@@ -29,7 +29,7 @@
return e
}
- xd := xt.Descriptor()
+ xd := xt.TypeDescriptor()
var wiretag uint64
if !xd.IsPacked() {
wiretag = wire.EncodeTag(xd.Number(), wireTypes[xd.Kind()])
diff --git a/internal/impl/extension.go b/internal/impl/extension.go
index 1ba473d..2ac8b7b 100644
--- a/internal/impl/extension.go
+++ b/internal/impl/extension.go
@@ -119,6 +119,10 @@
return xi.goType
}
func (xi *ExtensionInfo) Descriptor() pref.ExtensionTypeDescriptor {
+ // TODO: Remove.
+ return xi.TypeDescriptor()
+}
+func (xi *ExtensionInfo) TypeDescriptor() pref.ExtensionTypeDescriptor {
if atomic.LoadUint32(&xi.init) == extensionInfoUninitialized {
xi.lazyInitSlow()
}
diff --git a/internal/impl/legacy_extension.go b/internal/impl/legacy_extension.go
index ec5420d..02e021b 100644
--- a/internal/impl/legacy_extension.go
+++ b/internal/impl/legacy_extension.go
@@ -33,11 +33,11 @@
}
tt := xt.GoType()
- if xt.Descriptor().Cardinality() == pref.Repeated {
+ if xt.TypeDescriptor().Cardinality() == pref.Repeated {
tt = tt.Elem().Elem()
}
xi := &ExtensionInfo{}
- InitExtensionInfo(xi, xt.Descriptor().Descriptor(), tt)
+ InitExtensionInfo(xi, xt.TypeDescriptor().Descriptor(), tt)
xi.lazyInit() // populate legacy fields
if xi, ok := legacyExtensionInfoCache.LoadOrStore(xt, xi); ok {
diff --git a/internal/impl/legacy_test.go b/internal/impl/legacy_test.go
index e306e6b..08daace 100644
--- a/internal/impl/legacy_test.go
+++ b/internal/impl/legacy_test.go
@@ -358,7 +358,7 @@
}
for i, xt := range extensionTypes {
var got interface{}
- xd := xt.Descriptor()
+ xd := xt.TypeDescriptor()
if !(xd.IsList() || xd.IsMap() || xd.Message() != nil) {
got = xt.InterfaceOf(m.Get(xd))
}
@@ -370,7 +370,7 @@
// All fields should be unpopulated.
for _, xt := range extensionTypes {
- xd := xt.Descriptor()
+ xd := xt.TypeDescriptor()
if m.Has(xd) {
t.Errorf("Message.Has(%d) = true, want false", xd.Number())
}
@@ -404,11 +404,11 @@
19: &[]*EnumMessages{m2b},
}
for i, xt := range extensionTypes {
- m.Set(xt.Descriptor(), xt.ValueOf(setValues[i]))
+ m.Set(xt.TypeDescriptor(), xt.ValueOf(setValues[i]))
}
for i, xt := range extensionTypes[len(extensionTypes)/2:] {
v := extensionTypes[i].ValueOf(setValues[i])
- m.Get(xt.Descriptor()).List().Append(v)
+ m.Get(xt.TypeDescriptor()).List().Append(v)
}
// Get the values and check for equality.
@@ -435,7 +435,7 @@
19: &[]*EnumMessages{m2b, m2a},
}
for i, xt := range extensionTypes {
- xd := xt.Descriptor()
+ xd := xt.TypeDescriptor()
got := xt.InterfaceOf(m.Get(xd))
want := getValues[i]
if diff := cmp.Diff(want, got, opts); diff != "" {
@@ -445,15 +445,15 @@
// Clear all singular fields and truncate all repeated fields.
for _, xt := range extensionTypes[:len(extensionTypes)/2] {
- m.Clear(xt.Descriptor())
+ m.Clear(xt.TypeDescriptor())
}
for _, xt := range extensionTypes[len(extensionTypes)/2:] {
- m.Get(xt.Descriptor()).List().Truncate(0)
+ m.Get(xt.TypeDescriptor()).List().Truncate(0)
}
// Clear all repeated fields.
for _, xt := range extensionTypes[len(extensionTypes)/2:] {
- m.Clear(xt.Descriptor())
+ m.Clear(xt.TypeDescriptor())
}
}
@@ -517,7 +517,7 @@
}),
cmp.Transformer("", func(xt pref.ExtensionType) map[string]interface{} {
return map[string]interface{}{
- "Descriptor": xt.Descriptor(),
+ "Descriptor": xt.TypeDescriptor(),
"GoType": xt.GoType(),
}
}),
diff --git a/internal/impl/message_reflect.go b/internal/impl/message_reflect.go
index b01622b..8ed7cc5 100644
--- a/internal/impl/message_reflect.go
+++ b/internal/impl/message_reflect.go
@@ -119,7 +119,7 @@
if m != nil {
for _, x := range *m {
xt := x.GetType()
- if !f(xt.Descriptor(), xt.ValueOf(x.GetValue())) {
+ if !f(xt.TypeDescriptor(), xt.ValueOf(x.GetValue())) {
return
}
}
@@ -127,15 +127,15 @@
}
func (m *extensionMap) Has(xt pref.ExtensionType) (ok bool) {
if m != nil {
- _, ok = (*m)[int32(xt.Descriptor().Number())]
+ _, ok = (*m)[int32(xt.TypeDescriptor().Number())]
}
return ok
}
func (m *extensionMap) Clear(xt pref.ExtensionType) {
- delete(*m, int32(xt.Descriptor().Number()))
+ delete(*m, int32(xt.TypeDescriptor().Number()))
}
func (m *extensionMap) Get(xt pref.ExtensionType) pref.Value {
- xd := xt.Descriptor()
+ xd := xt.TypeDescriptor()
if m != nil {
if x, ok := (*m)[int32(xd.Number())]; ok {
return xt.ValueOf(x.GetValue())
@@ -150,10 +150,10 @@
var x ExtensionField
x.SetType(xt)
x.SetEagerValue(xt.InterfaceOf(v))
- (*m)[int32(xt.Descriptor().Number())] = x
+ (*m)[int32(xt.TypeDescriptor().Number())] = x
}
func (m *extensionMap) Mutable(xt pref.ExtensionType) pref.Value {
- xd := xt.Descriptor()
+ xd := xt.TypeDescriptor()
if xd.Kind() != pref.MessageKind && xd.Kind() != pref.GroupKind && !xd.IsList() && !xd.IsMap() {
panic("invalid Mutable on field with non-composite type")
}