all: remove NewMessage methods
Superseded by New{Field,Element,Value}.
Change-Id: Iad09f3b0c6bac7b75cf28925eef2982d45267317
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/193598
Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/internal/cmd/generate-types/impl.go b/internal/cmd/generate-types/impl.go
index cc05e0f..df19b19 100644
--- a/internal/cmd/generate-types/impl.go
+++ b/internal/cmd/generate-types/impl.go
@@ -707,9 +707,6 @@
return m.messageInfo().extensionMap(m.pointer()).Mutable(xt)
}
}
-func (m *{{.}}) NewMessage(fd protoreflect.FieldDescriptor) protoreflect.Message {
- return m.NewField(fd).Message()
-}
func (m *{{.}}) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
m.messageInfo().init()
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
diff --git a/internal/impl/convert_list.go b/internal/impl/convert_list.go
index cd632cd..222f1a4 100644
--- a/internal/impl/convert_list.go
+++ b/internal/impl/convert_list.go
@@ -122,9 +122,6 @@
func (ls *listReflect) Truncate(i int) {
ls.v.Elem().Set(ls.v.Elem().Slice(0, i))
}
-func (ls *listReflect) NewMessage() pref.Message {
- return ls.NewElement().Message()
-}
func (ls *listReflect) NewElement() pref.Value {
return ls.conv.New()
}
diff --git a/internal/impl/convert_map.go b/internal/impl/convert_map.go
index 68fb506..47b5f22 100644
--- a/internal/impl/convert_map.go
+++ b/internal/impl/convert_map.go
@@ -99,9 +99,6 @@
}
}
}
-func (ms *mapReflect) NewMessage() pref.Message {
- return ms.NewValue().Message()
-}
func (ms *mapReflect) NewValue() pref.Value {
return ms.valConv.New()
}
diff --git a/internal/impl/message_reflect_gen.go b/internal/impl/message_reflect_gen.go
index 9968277..574fb4f 100644
--- a/internal/impl/message_reflect_gen.go
+++ b/internal/impl/message_reflect_gen.go
@@ -91,9 +91,6 @@
return m.messageInfo().extensionMap(m.pointer()).Mutable(xt)
}
}
-func (m *messageState) NewMessage(fd protoreflect.FieldDescriptor) protoreflect.Message {
- return m.NewField(fd).Message()
-}
func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
m.messageInfo().init()
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
@@ -201,9 +198,6 @@
return m.messageInfo().extensionMap(m.pointer()).Mutable(xt)
}
}
-func (m *messageReflectWrapper) NewMessage(fd protoreflect.FieldDescriptor) protoreflect.Message {
- return m.NewField(fd).Message()
-}
func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
m.messageInfo().init()
if fi, xt := m.messageInfo().checkField(fd); fi != nil {
diff --git a/internal/testprotos/irregular/irregular.go b/internal/testprotos/irregular/irregular.go
index 8127f0b..be89d01 100644
--- a/internal/testprotos/irregular/irregular.go
+++ b/internal/testprotos/irregular/irregular.go
@@ -74,10 +74,6 @@
panic("invalid field descriptor")
}
-func (m *message) NewMessage(pref.FieldDescriptor) pref.Message {
- panic("invalid field descriptor")
-}
-
func (m *message) NewField(pref.FieldDescriptor) pref.Value {
panic("invalid field descriptor")
}
diff --git a/reflect/protoreflect/value.go b/reflect/protoreflect/value.go
index ec10099..1f100ac 100644
--- a/reflect/protoreflect/value.go
+++ b/reflect/protoreflect/value.go
@@ -116,13 +116,6 @@
// Mutable is a mutating operation and unsafe for concurrent use.
Mutable(FieldDescriptor) Value
- // NewMessage returns a newly allocated empty message assignable to
- // the field of the given descriptor.
- // It panics if the field is not a singular message.
- //
- // Deprecated: Use NewField instead.
- NewMessage(FieldDescriptor) Message
-
// NewField returns a new value for assignable to the field of a given descriptor.
// For scalars, this returns the default value.
// For lists, maps, and messages, this returns a new, empty, mutable value.
@@ -202,12 +195,6 @@
// Truncate is a mutating operation and unsafe for concurrent use.
Truncate(int)
- // NewMessage returns a newly allocated empty message assignable as a list entry.
- // It panics if the list entry type is not a message.
- //
- // Deprecated: Use NewElement instead.
- NewMessage() Message
-
// NewElement returns a new value for a list element.
// For enums, this returns the first enum value.
// For other scalars, this returns the zero value.
@@ -253,12 +240,6 @@
// TODO: Should there be a Mutable method?
- // NewMessage returns a newly allocated empty message assignable as a map value.
- // It panics if the map value type is not a message.
- //
- // Deprecated: Use NewValue instead.
- NewMessage() Message
-
// NewValue returns a new value assignable as a map value.
// For enums, this returns the first enum value.
// For other scalars, this returns the zero value.
diff --git a/testing/prototest/prototest.go b/testing/prototest/prototest.go
index 20d20c9..0aad3f0 100644
--- a/testing/prototest/prototest.go
+++ b/testing/prototest/prototest.go
@@ -273,7 +273,6 @@
func (m testMap) Has(k pref.MapKey) bool { return m.Get(k).IsValid() }
func (m testMap) Clear(k pref.MapKey) { delete(m, k.Interface()) }
func (m testMap) Len() int { return len(m) }
-func (m testMap) NewMessage() pref.Message { panic("unimplemented") }
func (m testMap) NewValue() pref.Value { panic("unimplemented") }
func (m testMap) Range(f func(pref.MapKey, pref.Value) bool) {
for k, v := range m {
@@ -341,13 +340,12 @@
a []pref.Value
}
-func (l *testList) Append(v pref.Value) { l.a = append(l.a, v) }
-func (l *testList) Get(n int) pref.Value { return l.a[n] }
-func (l *testList) Len() int { return len(l.a) }
-func (l *testList) Set(n int, v pref.Value) { l.a[n] = v }
-func (l *testList) Truncate(n int) { l.a = l.a[:n] }
-func (l *testList) NewMessage() pref.Message { panic("unimplemented") }
-func (l *testList) NewElement() pref.Value { panic("unimplemented") }
+func (l *testList) Append(v pref.Value) { l.a = append(l.a, v) }
+func (l *testList) Get(n int) pref.Value { return l.a[n] }
+func (l *testList) Len() int { return len(l.a) }
+func (l *testList) Set(n int, v pref.Value) { l.a[n] = v }
+func (l *testList) Truncate(n int) { l.a = l.a[:n] }
+func (l *testList) NewElement() pref.Value { panic("unimplemented") }
// testFieldFloat exercises some interesting floating-point scalar field values.
func testFieldFloat(t testing.TB, m pref.Message, fd pref.FieldDescriptor) {
diff --git a/types/dynamicpb/dynamic.go b/types/dynamicpb/dynamic.go
index bf609bf..4327879 100644
--- a/types/dynamicpb/dynamic.go
+++ b/types/dynamicpb/dynamic.go
@@ -206,17 +206,6 @@
}
}
-// NewMessage returns a newly-allocated message assignable to a field.
-// See protoreflect.Message for details.
-func (m *Message) NewMessage(fd pref.FieldDescriptor) pref.Message {
- m.checkField(fd)
- md := fd.Message()
- if fd.Cardinality() == pref.Repeated || md == nil {
- panic(errors.New("%v: field is not of non-repeated message type", fd.FullName()))
- }
- return NewMessage(md).ProtoReflect()
-}
-
// NewField returns a new value for assignable to the field of a given descriptor.
// See protoreflect.Message for details.
func (m *Message) NewField(fd pref.FieldDescriptor) pref.Value {
@@ -308,13 +297,6 @@
func (x emptyList) Set(n int, v pref.Value) { panic(errors.New("modification of immutable list")) }
func (x emptyList) Append(v pref.Value) { panic(errors.New("modification of immutable list")) }
func (x emptyList) Truncate(n int) { panic(errors.New("modification of immutable list")) }
-func (x emptyList) NewMessage() pref.Message {
- md := x.desc.Message()
- if md == nil {
- panic(errors.New("list is not of message type"))
- }
- return NewMessage(md).ProtoReflect()
-}
func (x emptyList) NewElement() pref.Value {
return newListEntry(x.desc)
}
@@ -350,14 +332,6 @@
x.list = x.list[:n]
}
-func (x *dynamicList) NewMessage() pref.Message {
- md := x.desc.Message()
- if md == nil {
- panic(errors.New("list is not of message type"))
- }
- return NewMessage(md).ProtoReflect()
-}
-
func (x *dynamicList) NewElement() pref.Value {
return newListEntry(x.desc)
}
@@ -376,13 +350,6 @@
func (x *dynamicMap) Has(k pref.MapKey) bool { return x.Get(k).IsValid() }
func (x *dynamicMap) Clear(k pref.MapKey) { delete(x.mapv, k.Interface()) }
func (x *dynamicMap) Len() int { return len(x.mapv) }
-func (x *dynamicMap) NewMessage() pref.Message {
- md := x.desc.MapValue().Message()
- if md == nil {
- panic(errors.New("map value is not of message type"))
- }
- return NewMessage(md).ProtoReflect()
-}
func (x *dynamicMap) NewValue() pref.Value {
if md := x.desc.MapValue().Message(); md != nil {
return pref.ValueOf(NewMessage(md).ProtoReflect())