all: remove use of deprecated NewMessage

Replace NewMessage calls with NewField, NewElement, or NewValue.

Change-Id: I6d2bb4f11f0eb2ba7a52308b1addb111137ad4b9
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/193266
Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/proto/decode.go b/proto/decode.go
index e5ecb3b..8974139 100644
--- a/proto/decode.go
+++ b/proto/decode.go
@@ -154,7 +154,7 @@
 	)
 	switch valField.Kind() {
 	case protoreflect.GroupKind, protoreflect.MessageKind:
-		val = protoreflect.ValueOf(mapv.NewMessage())
+		val = mapv.NewValue()
 	}
 	// Map entries are represented as a two-element message with fields
 	// containing the key and value.
diff --git a/proto/decode_gen.go b/proto/decode_gen.go
index ce53dcd..61d5f8a 100644
--- a/proto/decode_gen.go
+++ b/proto/decode_gen.go
@@ -574,11 +574,11 @@
 		if n < 0 {
 			return 0, wire.ParseError(n)
 		}
-		m := list.NewMessage()
-		if err := o.unmarshalMessage(v, m); err != nil {
+		m := list.NewElement()
+		if err := o.unmarshalMessage(v, m.Message()); err != nil {
 			return 0, err
 		}
-		list.Append(protoreflect.ValueOf(m))
+		list.Append(m)
 		return n, nil
 	case protoreflect.GroupKind:
 		if wtyp != wire.StartGroupType {
@@ -588,11 +588,11 @@
 		if n < 0 {
 			return 0, wire.ParseError(n)
 		}
-		m := list.NewMessage()
-		if err := o.unmarshalMessage(v, m); err != nil {
+		m := list.NewElement()
+		if err := o.unmarshalMessage(v, m.Message()); err != nil {
 			return 0, err
 		}
-		list.Append(protoreflect.ValueOf(m))
+		list.Append(m)
 		return n, nil
 	default:
 		return 0, errUnknown
diff --git a/proto/merge.go b/proto/merge.go
index 7cea77d..8c31b3c 100644
--- a/proto/merge.go
+++ b/proto/merge.go
@@ -46,9 +46,9 @@
 	for i := 0; i < src.Len(); i++ {
 		switch v := src.Get(i); {
 		case fd.Message() != nil:
-			m := dst.NewMessage()
-			mergeMessage(m, v.Message())
-			dst.Append(protoreflect.ValueOf(m))
+			dstv := dst.NewElement()
+			mergeMessage(dstv.Message(), v.Message())
+			dst.Append(dstv)
 		case fd.Kind() == protoreflect.BytesKind:
 			dst.Append(cloneBytes(v))
 		default:
@@ -61,9 +61,9 @@
 	src.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool {
 		switch {
 		case fd.Message() != nil:
-			m := dst.NewMessage()
-			mergeMessage(m, v.Message())
-			dst.Set(k, protoreflect.ValueOf(m)) // may replace existing entry
+			dstv := dst.NewValue()
+			mergeMessage(dstv.Message(), v.Message())
+			dst.Set(k, dstv) // may replace existing entry
 		case fd.Kind() == protoreflect.BytesKind:
 			dst.Set(k, cloneBytes(v))
 		default: