internal/impl: unexport Unwrapper

This interface is only ever used within the impl package.
Unexport it to avoid potential abuse by users.

Change-Id: I58d0cc2e8cb01c8c9d36cdec469c8d2196c4f836
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/193197
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/internal/cmd/generate-types/impl.go b/internal/cmd/generate-types/impl.go
index 582ecae..3cf9cae 100644
--- a/internal/cmd/generate-types/impl.go
+++ b/internal/cmd/generate-types/impl.go
@@ -631,15 +631,15 @@
 }
 func (m *{{.}}) Interface() protoreflect.ProtoMessage {
 	{{if eq . "messageState" -}}
-	return m.ProtoUnwrap().(protoreflect.ProtoMessage)
+	return m.protoUnwrap().(protoreflect.ProtoMessage)
 	{{- else -}}
-	if m, ok := m.ProtoUnwrap().(protoreflect.ProtoMessage); ok {
+	if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok {
 		return m
 	}
 	return (*messageIfaceWrapper)(m)
 	{{- end -}}
 }
-func (m *{{.}}) ProtoUnwrap() interface{} {
+func (m *{{.}}) protoUnwrap() interface{} {
 	return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
 }
 func (m *{{.}}) ProtoMethods() *protoiface.Methods {
diff --git a/internal/impl/api_export.go b/internal/impl/api_export.go
index 55c5481..f2b3738 100644
--- a/internal/impl/api_export.go
+++ b/internal/impl/api_export.go
@@ -74,8 +74,8 @@
 	switch mv := m.(type) {
 	case piface.MessageV1:
 		return mv
-	case Unwrapper:
-		return Export{}.ProtoMessageV1Of(mv.ProtoUnwrap())
+	case unwrapper:
+		return Export{}.ProtoMessageV1Of(mv.protoUnwrap())
 	case protoreflect.ProtoMessage:
 		return legacyMessageWrapper{mv}
 	default:
diff --git a/internal/impl/convert.go b/internal/impl/convert.go
index 2186b26..67cd7f8 100644
--- a/internal/impl/convert.go
+++ b/internal/impl/convert.go
@@ -11,10 +11,10 @@
 	pref "google.golang.org/protobuf/reflect/protoreflect"
 )
 
-// Unwrapper unwraps the value to the underlying value.
+// unwrapper unwraps the value to the underlying value.
 // This is implemented by List and Map.
-type Unwrapper interface {
-	ProtoUnwrap() interface{}
+type unwrapper interface {
+	protoUnwrap() interface{}
 }
 
 // A Converter coverts to/from Go reflect.Value types and protobuf protoreflect.Value types.
@@ -432,8 +432,8 @@
 func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value {
 	m := v.Message()
 	var rv reflect.Value
-	if u, ok := m.(Unwrapper); ok {
-		rv = reflect.ValueOf(u.ProtoUnwrap())
+	if u, ok := m.(unwrapper); ok {
+		rv = reflect.ValueOf(u.protoUnwrap())
 	} else {
 		rv = reflect.ValueOf(m.Interface())
 	}
@@ -446,8 +446,8 @@
 func (c *messageConverter) IsValidPB(v pref.Value) bool {
 	m := v.Message()
 	var rv reflect.Value
-	if u, ok := m.(Unwrapper); ok {
-		rv = reflect.ValueOf(u.ProtoUnwrap())
+	if u, ok := m.(unwrapper); ok {
+		rv = reflect.ValueOf(u.protoUnwrap())
 	} else {
 		rv = reflect.ValueOf(m.Interface())
 	}
diff --git a/internal/impl/convert_list.go b/internal/impl/convert_list.go
index fa3a400..cd632cd 100644
--- a/internal/impl/convert_list.go
+++ b/internal/impl/convert_list.go
@@ -128,6 +128,6 @@
 func (ls *listReflect) NewElement() pref.Value {
 	return ls.conv.New()
 }
-func (ls *listReflect) ProtoUnwrap() interface{} {
+func (ls *listReflect) protoUnwrap() interface{} {
 	return ls.v.Interface()
 }
diff --git a/internal/impl/convert_map.go b/internal/impl/convert_map.go
index ca51819..68fb506 100644
--- a/internal/impl/convert_map.go
+++ b/internal/impl/convert_map.go
@@ -105,6 +105,6 @@
 func (ms *mapReflect) NewValue() pref.Value {
 	return ms.valConv.New()
 }
-func (ms *mapReflect) ProtoUnwrap() interface{} {
+func (ms *mapReflect) protoUnwrap() interface{} {
 	return ms.v.Interface()
 }
diff --git a/internal/impl/legacy_enum.go b/internal/impl/legacy_enum.go
index 4ec31df..c92eadf 100644
--- a/internal/impl/legacy_enum.go
+++ b/internal/impl/legacy_enum.go
@@ -101,7 +101,7 @@
 func (e *legacyEnumWrapper) ProtoReflect() pref.Enum {
 	return e
 }
-func (e *legacyEnumWrapper) ProtoUnwrap() interface{} {
+func (e *legacyEnumWrapper) protoUnwrap() interface{} {
 	v := reflect.New(e.goTyp).Elem()
 	v.SetInt(int64(e.num))
 	return v.Interface()
@@ -109,7 +109,7 @@
 
 var (
 	_ pref.Enum = (*legacyEnumWrapper)(nil)
-	_ Unwrapper = (*legacyEnumWrapper)(nil)
+	_ unwrapper = (*legacyEnumWrapper)(nil)
 )
 
 var legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor
diff --git a/internal/impl/legacy_extension.go b/internal/impl/legacy_extension.go
index b845f35..bfa6e1b 100644
--- a/internal/impl/legacy_extension.go
+++ b/internal/impl/legacy_extension.go
@@ -54,8 +54,8 @@
 		// Create a new parent message and unwrap it if possible.
 		mv := mt.New().Interface()
 		t := reflect.TypeOf(mv)
-		if mv, ok := mv.(Unwrapper); ok {
-			t = reflect.TypeOf(mv.ProtoUnwrap())
+		if mv, ok := mv.(unwrapper); ok {
+			t = reflect.TypeOf(mv.protoUnwrap())
 		}
 
 		// Check whether the message implements the legacy v1 Message interface.
diff --git a/internal/impl/message_reflect.go b/internal/impl/message_reflect.go
index 469b255..b34e479 100644
--- a/internal/impl/message_reflect.go
+++ b/internal/impl/message_reflect.go
@@ -221,7 +221,7 @@
 
 var (
 	_ pref.Message = (*messageState)(nil)
-	_ Unwrapper    = (*messageState)(nil)
+	_ unwrapper    = (*messageState)(nil)
 )
 
 // messageDataType is a tuple of a pointer to the message data and
@@ -240,9 +240,9 @@
 
 var (
 	_ pref.Message      = (*messageReflectWrapper)(nil)
-	_ Unwrapper         = (*messageReflectWrapper)(nil)
+	_ unwrapper         = (*messageReflectWrapper)(nil)
 	_ pref.ProtoMessage = (*messageIfaceWrapper)(nil)
-	_ Unwrapper         = (*messageIfaceWrapper)(nil)
+	_ unwrapper         = (*messageIfaceWrapper)(nil)
 )
 
 // MessageOf returns a reflective view over a message. The input must be a
@@ -266,7 +266,7 @@
 func (m *messageIfaceWrapper) ProtoReflect() pref.Message {
 	return (*messageReflectWrapper)(m)
 }
-func (m *messageIfaceWrapper) ProtoUnwrap() interface{} {
+func (m *messageIfaceWrapper) protoUnwrap() interface{} {
 	return m.p.AsIfaceOf(m.mi.GoReflectType.Elem())
 }
 
diff --git a/internal/impl/message_reflect_field.go b/internal/impl/message_reflect_field.go
index 6f7051b..e55b6de 100644
--- a/internal/impl/message_reflect_field.go
+++ b/internal/impl/message_reflect_field.go
@@ -189,7 +189,7 @@
 		},
 		set: func(p pointer, v pref.Value) {
 			rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()
-			rv.Set(reflect.ValueOf(v.List().(Unwrapper).ProtoUnwrap()).Elem())
+			rv.Set(reflect.ValueOf(v.List().(unwrapper).protoUnwrap()).Elem())
 		},
 		mutable: func(p pointer) pref.Value {
 			v := p.Apply(fieldOffset).AsValueOf(fs.Type)
diff --git a/internal/impl/message_reflect_gen.go b/internal/impl/message_reflect_gen.go
index 5376920..9968277 100644
--- a/internal/impl/message_reflect_gen.go
+++ b/internal/impl/message_reflect_gen.go
@@ -21,9 +21,9 @@
 	return m.messageInfo().New()
 }
 func (m *messageState) Interface() protoreflect.ProtoMessage {
-	return m.ProtoUnwrap().(protoreflect.ProtoMessage)
+	return m.protoUnwrap().(protoreflect.ProtoMessage)
 }
-func (m *messageState) ProtoUnwrap() interface{} {
+func (m *messageState) protoUnwrap() interface{} {
 	return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
 }
 func (m *messageState) ProtoMethods() *protoiface.Methods {
@@ -128,12 +128,12 @@
 	return m.messageInfo().New()
 }
 func (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage {
-	if m, ok := m.ProtoUnwrap().(protoreflect.ProtoMessage); ok {
+	if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok {
 		return m
 	}
 	return (*messageIfaceWrapper)(m)
 }
-func (m *messageReflectWrapper) ProtoUnwrap() interface{} {
+func (m *messageReflectWrapper) protoUnwrap() interface{} {
 	return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
 }
 func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods {