reflect/protoreflect: drop the ProtoEnum type
Drop the protoreflect.ProtoEnum type (containing a single method
returning a protoreflect.Enum) and make generated enum types
directly implement protoreflect.Enum instead.
Messages have a two-level type split (ProtoMessage and Message) to
minimize conflicts between reflection methods and field names. Enums
need no such split, since enums do not have fields and therefore have
no source of conflicts.
Change-Id: I2b6222e9404253e6bfef2217859e1b760ffcd29b
Reviewed-on: https://go-review.googlesource.com/c/156902
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/encoding/textpb/testprotos/pb2/test.pb.go b/encoding/textpb/testprotos/pb2/test.pb.go
index 61388ba..e3e9dea 100644
--- a/encoding/textpb/testprotos/pb2/test.pb.go
+++ b/encoding/textpb/testprotos/pb2/test.pb.go
@@ -31,15 +31,10 @@
Enum_TENTH Enum = 10
)
-type xxx_Enum Enum
-
-func (e Enum) ProtoReflect() protoreflect.Enum {
- return (xxx_Enum)(e)
-}
-func (e xxx_Enum) Type() protoreflect.EnumType {
+func (e Enum) Type() protoreflect.EnumType {
return xxx_Test_ProtoFile_EnumTypes[0]
}
-func (e xxx_Enum) Number() protoreflect.EnumNumber {
+func (e Enum) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(e)
}
@@ -88,15 +83,10 @@
Enums_DIEZ Enums_NestedEnum = 10
)
-type xxx_Enums_NestedEnum Enums_NestedEnum
-
-func (e Enums_NestedEnum) ProtoReflect() protoreflect.Enum {
- return (xxx_Enums_NestedEnum)(e)
-}
-func (e xxx_Enums_NestedEnum) Type() protoreflect.EnumType {
+func (e Enums_NestedEnum) Type() protoreflect.EnumType {
return xxx_Test_ProtoFile_EnumTypes[1]
}
-func (e xxx_Enums_NestedEnum) Number() protoreflect.EnumNumber {
+func (e Enums_NestedEnum) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(e)
}
@@ -2216,13 +2206,13 @@
var xxx_Test_ProtoFile_EnumTypes = [2]protoreflect.EnumType{
prototype.GoEnum(
xxx_Test_ProtoFile_EnumDescs[0].Reference(),
- func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.ProtoEnum {
+ func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.Enum {
return Enum(n)
},
),
prototype.GoEnum(
xxx_Test_ProtoFile_EnumDescs[1].Reference(),
- func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.ProtoEnum {
+ func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.Enum {
return Enums_NestedEnum(n)
},
),
diff --git a/encoding/textpb/testprotos/pb3/test.pb.go b/encoding/textpb/testprotos/pb3/test.pb.go
index 30123ab..839054b 100644
--- a/encoding/textpb/testprotos/pb3/test.pb.go
+++ b/encoding/textpb/testprotos/pb3/test.pb.go
@@ -25,15 +25,10 @@
Enum_TEN Enum = 10
)
-type xxx_Enum Enum
-
-func (e Enum) ProtoReflect() protoreflect.Enum {
- return (xxx_Enum)(e)
-}
-func (e xxx_Enum) Type() protoreflect.EnumType {
+func (e Enum) Type() protoreflect.EnumType {
return xxx_Test_ProtoFile_EnumTypes[0]
}
-func (e xxx_Enum) Number() protoreflect.EnumNumber {
+func (e Enum) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(e)
}
@@ -68,15 +63,10 @@
Enums_DIEZ Enums_NestedEnum = 10
)
-type xxx_Enums_NestedEnum Enums_NestedEnum
-
-func (e Enums_NestedEnum) ProtoReflect() protoreflect.Enum {
- return (xxx_Enums_NestedEnum)(e)
-}
-func (e xxx_Enums_NestedEnum) Type() protoreflect.EnumType {
+func (e Enums_NestedEnum) Type() protoreflect.EnumType {
return xxx_Test_ProtoFile_EnumTypes[1]
}
-func (e xxx_Enums_NestedEnum) Number() protoreflect.EnumNumber {
+func (e Enums_NestedEnum) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(e)
}
@@ -535,13 +525,13 @@
var xxx_Test_ProtoFile_EnumTypes = [2]protoreflect.EnumType{
prototype.GoEnum(
xxx_Test_ProtoFile_EnumDescs[0].Reference(),
- func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.ProtoEnum {
+ func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.Enum {
return Enum(n)
},
),
prototype.GoEnum(
xxx_Test_ProtoFile_EnumDescs[1].Reference(),
- func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.ProtoEnum {
+ func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.Enum {
return Enums_NestedEnum(n)
},
),