all: drop reflect/prototype package
Remove the remaining uses of the prototype package.
The most significant change is to impl.MessageInfo, which now directly
implements the MessageType interface. This involves two notable changes
to exported fields of MessageInfo:
- PBType is now Desc.
- GoType is now GoReflectType. (Name changed to avoid a conflict with
the GoType method of the MessageType interface.)
Fixes golang/protobuf#911
Change-Id: Ie2aa4766d6887ceaa9cf06b1f109aa6e6e2a208f
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/189340
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/internal/impl/message_test.go b/internal/impl/message_test.go
index 0fb8ae0..de73ff9 100644
--- a/internal/impl/message_test.go
+++ b/internal/impl/message_test.go
@@ -21,7 +21,6 @@
pdesc "google.golang.org/protobuf/reflect/protodesc"
pref "google.golang.org/protobuf/reflect/protoreflect"
"google.golang.org/protobuf/reflect/protoregistry"
- "google.golang.org/protobuf/reflect/prototype"
proto2_20180125 "google.golang.org/protobuf/internal/testprotos/legacy/proto2.v1.0.0-20180125-92554152"
testpb "google.golang.org/protobuf/internal/testprotos/test"
@@ -209,8 +208,7 @@
MapBytes map[MyString]MyBytes
)
-var scalarProto2Type = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ScalarProto2)), PBType: &prototype.Message{
- MessageDescriptor: mustMakeMessageDesc("scalar2.proto", pref.Proto2, "", `
+var scalarProto2Type = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(ScalarProto2)), Desc: mustMakeMessageDesc("scalar2.proto", pref.Proto2, "", `
name: "ScalarProto2"
field: [
{name:"f1" number:1 label:LABEL_OPTIONAL type:TYPE_BOOL default_value:"true"},
@@ -238,10 +236,7 @@
{name:"f22" number:22 label:LABEL_OPTIONAL type:TYPE_BYTES default_value:"22"}
]
`, nil),
- NewMessage: func() pref.Message {
- return pref.ProtoMessage(new(ScalarProto2)).ProtoReflect()
- },
-}}
+}
func (m *ScalarProto2) ProtoReflect() pref.Message { return scalarProto2Type.MessageOf(m) }
@@ -315,8 +310,7 @@
MyBytesA MyString `protobuf:"22"`
}
-var scalarProto3Type = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ScalarProto3)), PBType: &prototype.Message{
- MessageDescriptor: mustMakeMessageDesc("scalar3.proto", pref.Proto3, "", `
+var scalarProto3Type = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(ScalarProto3)), Desc: mustMakeMessageDesc("scalar3.proto", pref.Proto3, "", `
name: "ScalarProto3"
field: [
{name:"f1" number:1 label:LABEL_OPTIONAL type:TYPE_BOOL},
@@ -344,10 +338,7 @@
{name:"f22" number:22 label:LABEL_OPTIONAL type:TYPE_BYTES}
]
`, nil),
- NewMessage: func() pref.Message {
- return pref.ProtoMessage(new(ScalarProto3)).ProtoReflect()
- },
-}}
+}
func (m *ScalarProto3) ProtoReflect() pref.Message { return scalarProto3Type.MessageOf(m) }
@@ -439,8 +430,7 @@
MyBytes4 ListStrings `protobuf:"19"`
}
-var listScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ListScalars)), PBType: &prototype.Message{
- MessageDescriptor: mustMakeMessageDesc("list-scalars.proto", pref.Proto2, "", `
+var listScalarsType = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(ListScalars)), Desc: mustMakeMessageDesc("list-scalars.proto", pref.Proto2, "", `
name: "ListScalars"
field: [
{name:"f1" number:1 label:LABEL_REPEATED type:TYPE_BOOL},
@@ -466,10 +456,7 @@
{name:"f19" number:19 label:LABEL_REPEATED type:TYPE_BYTES}
]
`, nil),
- NewMessage: func() pref.Message {
- return pref.ProtoMessage(new(ListScalars)).ProtoReflect()
- },
-}}
+}
func (m *ListScalars) ProtoReflect() pref.Message { return listScalarsType.MessageOf(m) }
@@ -596,8 +583,7 @@
MyBytes4 MapStrings `protobuf:"25"`
}
-var mapScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(MapScalars)), PBType: &prototype.Message{
- MessageDescriptor: mustMakeMessageDesc("map-scalars.proto", pref.Proto2, "", `
+var mapScalarsType = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(MapScalars)), Desc: mustMakeMessageDesc("map-scalars.proto", pref.Proto2, "", `
name: "MapScalars"
field: [
{name:"f1" number:1 label:LABEL_REPEATED type:TYPE_MESSAGE type_name:".MapScalars.F1Entry"},
@@ -660,10 +646,7 @@
{name:"F25Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_BYTES}] options:{map_entry:true}}
]
`, nil),
- NewMessage: func() pref.Message {
- return pref.ProtoMessage(new(MapScalars)).ProtoReflect()
- },
-}}
+}
func (m *MapScalars) ProtoReflect() pref.Message { return mapScalarsType.MessageOf(m) }
@@ -790,8 +773,7 @@
Union isOneofScalars_Union `protobuf_oneof:"union"`
}
-var oneofScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(OneofScalars)), PBType: &prototype.Message{
- MessageDescriptor: mustMakeMessageDesc("oneof-scalars.proto", pref.Proto2, "", `
+var oneofScalarsType = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(OneofScalars)), Desc: mustMakeMessageDesc("oneof-scalars.proto", pref.Proto2, "", `
name: "OneofScalars"
field: [
{name:"f1" number:1 label:LABEL_OPTIONAL type:TYPE_BOOL default_value:"true" oneof_index:0},
@@ -810,10 +792,7 @@
]
oneof_decl: [{name:"union"}]
`, nil),
- NewMessage: func() pref.Message {
- return pref.ProtoMessage(new(OneofScalars)).ProtoReflect()
- },
-}}
+}
func (m *OneofScalars) ProtoReflect() pref.Message { return oneofScalarsType.MessageOf(m) }
@@ -952,37 +931,31 @@
type EnumProto2 int32
-var enumProto2Type = &prototype.Enum{
- EnumDescriptor: mustMakeEnumDesc("enum2.proto", pref.Proto2, `
- name: "EnumProto2"
- value: [{name:"DEAD" number:0xdead}, {name:"BEEF" number:0xbeef}]
- `),
- NewEnum: func(n pref.EnumNumber) pref.Enum {
- return EnumProto2(n)
- },
-}
+var enumProto2Desc = mustMakeEnumDesc("enum2.proto", pref.Proto2, `
+ name: "EnumProto2"
+ value: [{name:"DEAD" number:0xdead}, {name:"BEEF" number:0xbeef}]
+`)
-func (e EnumProto2) Descriptor() pref.EnumDescriptor { return enumProto2Type.Descriptor() }
-func (e EnumProto2) Type() pref.EnumType { return enumProto2Type }
+func (e EnumProto2) Descriptor() pref.EnumDescriptor { return enumProto2Desc }
+func (e EnumProto2) Type() pref.EnumType { return e }
func (e EnumProto2) Enum() *EnumProto2 { return &e }
func (e EnumProto2) Number() pref.EnumNumber { return pref.EnumNumber(e) }
+func (t EnumProto2) GoType() reflect.Type { return reflect.TypeOf(t) }
+func (t EnumProto2) New(n pref.EnumNumber) pref.Enum { return EnumProto2(n) }
type EnumProto3 int32
-var enumProto3Type = &prototype.Enum{
- EnumDescriptor: mustMakeEnumDesc("enum3.proto", pref.Proto3, `
- name: "EnumProto3",
- value: [{name:"ALPHA" number:0}, {name:"BRAVO" number:1}]
- `),
- NewEnum: func(n pref.EnumNumber) pref.Enum {
- return EnumProto3(n)
- },
-}
+var enumProto3Desc = mustMakeEnumDesc("enum3.proto", pref.Proto3, `
+ name: "EnumProto3",
+ value: [{name:"ALPHA" number:0}, {name:"BRAVO" number:1}]
+`)
-func (e EnumProto3) Descriptor() pref.EnumDescriptor { return enumProto3Type.Descriptor() }
-func (e EnumProto3) Type() pref.EnumType { return enumProto3Type }
+func (e EnumProto3) Descriptor() pref.EnumDescriptor { return enumProto3Desc }
+func (e EnumProto3) Type() pref.EnumType { return e }
func (e EnumProto3) Enum() *EnumProto3 { return &e }
func (e EnumProto3) Number() pref.EnumNumber { return pref.EnumNumber(e) }
+func (t EnumProto3) GoType() reflect.Type { return reflect.TypeOf(t) }
+func (t EnumProto3) New(n pref.EnumNumber) pref.Enum { return EnumProto3(n) }
type EnumMessages struct {
EnumP2 *EnumProto2 `protobuf:"1"`
@@ -996,8 +969,7 @@
Union isEnumMessages_Union `protobuf_oneof:"union"`
}
-var enumMessagesType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(EnumMessages)), PBType: &prototype.Message{
- MessageDescriptor: mustMakeMessageDesc("enum-messages.proto", pref.Proto2, `
+var enumMessagesType = pimpl.MessageInfo{GoReflectType: reflect.TypeOf(new(EnumMessages)), Desc: mustMakeMessageDesc("enum-messages.proto", pref.Proto2, `
dependency: ["enum2.proto", "enum3.proto", "scalar2.proto", "scalar3.proto", "proto2.v1.0.0-20180125-92554152/test.proto"]
`, `
name: "EnumMessages"
@@ -1021,16 +993,13 @@
{name:"F8Entry" field:[{name:"key" number:1 label:LABEL_OPTIONAL type:TYPE_STRING}, {name:"value" number:2 label:LABEL_OPTIONAL type:TYPE_MESSAGE type_name:".ScalarProto3"}] options:{map_entry:true}}
]
`, protoregistry.NewFiles(
- EnumProto2(0).Descriptor().ParentFile(),
- EnumProto3(0).Descriptor().ParentFile(),
- ((*ScalarProto2)(nil)).ProtoReflect().Descriptor().ParentFile(),
- ((*ScalarProto3)(nil)).ProtoReflect().Descriptor().ParentFile(),
- pimpl.Export{}.MessageDescriptorOf((*proto2_20180125.Message)(nil)).ParentFile(),
- )),
- NewMessage: func() pref.Message {
- return pref.ProtoMessage(new(EnumMessages)).ProtoReflect()
- },
-}}
+ EnumProto2(0).Descriptor().ParentFile(),
+ EnumProto3(0).Descriptor().ParentFile(),
+ ((*ScalarProto2)(nil)).ProtoReflect().Descriptor().ParentFile(),
+ ((*ScalarProto3)(nil)).ProtoReflect().Descriptor().ParentFile(),
+ pimpl.Export{}.MessageDescriptorOf((*proto2_20180125.Message)(nil)).ParentFile(),
+)),
+}
func (m *EnumMessages) ProtoReflect() pref.Message { return enumMessagesType.MessageOf(m) }