Przeglądaj źródła

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>
Joe Tsai 6 lat temu
rodzic
commit
fd528ff53f

+ 3 - 3
internal/cmd/generate-types/impl.go

@@ -631,15 +631,15 @@ func (m *{{.}}) New() protoreflect.Message {
 }
 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 {

+ 2 - 2
internal/impl/api_export.go

@@ -74,8 +74,8 @@ func (Export) ProtoMessageV1Of(m message) piface.MessageV1 {
 	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:

+ 7 - 7
internal/impl/convert.go

@@ -11,10 +11,10 @@ import (
 	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) PBValueOf(v reflect.Value) pref.Value {
 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) GoValueOf(v pref.Value) reflect.Value {
 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())
 	}

+ 1 - 1
internal/impl/convert_list.go

@@ -128,6 +128,6 @@ func (ls *listReflect) NewMessage() pref.Message {
 func (ls *listReflect) NewElement() pref.Value {
 	return ls.conv.New()
 }
-func (ls *listReflect) ProtoUnwrap() interface{} {
+func (ls *listReflect) protoUnwrap() interface{} {
 	return ls.v.Interface()
 }

+ 1 - 1
internal/impl/convert_map.go

@@ -105,6 +105,6 @@ func (ms *mapReflect) NewMessage() pref.Message {
 func (ms *mapReflect) NewValue() pref.Value {
 	return ms.valConv.New()
 }
-func (ms *mapReflect) ProtoUnwrap() interface{} {
+func (ms *mapReflect) protoUnwrap() interface{} {
 	return ms.v.Interface()
 }

+ 2 - 2
internal/impl/legacy_enum.go

@@ -101,7 +101,7 @@ func (e *legacyEnumWrapper) Number() pref.EnumNumber {
 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 @@ func (e *legacyEnumWrapper) ProtoUnwrap() interface{} {
 
 var (
 	_ pref.Enum = (*legacyEnumWrapper)(nil)
-	_ Unwrapper = (*legacyEnumWrapper)(nil)
+	_ unwrapper = (*legacyEnumWrapper)(nil)
 )
 
 var legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor

+ 2 - 2
internal/impl/legacy_extension.go

@@ -54,8 +54,8 @@ func (xi *ExtensionInfo) initToLegacy() {
 		// 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.

+ 4 - 4
internal/impl/message_reflect.go

@@ -221,7 +221,7 @@ type messageState MessageState
 
 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 @@ type (
 
 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 *messageReflectWrapper) messageInfo() *MessageInfo { return m.mi }
 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())
 }
 

+ 1 - 1
internal/impl/message_reflect_field.go

@@ -189,7 +189,7 @@ func fieldInfoForList(fd pref.FieldDescriptor, fs reflect.StructField, x exporte
 		},
 		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)

+ 4 - 4
internal/impl/message_reflect_gen.go

@@ -21,9 +21,9 @@ func (m *messageState) New() protoreflect.Message {
 	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 @@ func (m *messageReflectWrapper) New() protoreflect.Message {
 	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 {