cmd/protoc-gen-go: fix init order for v1 registration
The v1 registration leaks the message types out to the proto package.
When doing that, it must ensure that the reflection data structures
for those types are properly initialized first. We achieve that by
doing v1 registration at the end of the reflection init function.
Change-Id: If6df18df59d05bad50ff39c2eff6beb19e7466cc
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/168348
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/internal/testprotos/test/test.pb.go b/internal/testprotos/test/test.pb.go
index e6b9c88..fe48501 100644
--- a/internal/testprotos/test/test.pb.go
+++ b/internal/testprotos/test/test.pb.go
@@ -2005,82 +2005,6 @@
// extend goproto.proto.test.TestAllExtensions { optional string nested_string_extension = 1003; }
E_TestNestedExtension_NestedStringExtension = &xxx_File_test_test_proto_extDescs[36]
)
-
-func init() {
- proto.RegisterFile("test/test.proto", xxx_File_test_test_proto_rawdesc_gzipped)
- proto.RegisterEnum("goproto.proto.test.ForeignEnum", ForeignEnum_name, ForeignEnum_value)
- proto.RegisterEnum("goproto.proto.test.TestReservedEnumFields", TestReservedEnumFields_name, TestReservedEnumFields_value)
- proto.RegisterEnum("goproto.proto.test.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value)
- proto.RegisterEnum("goproto.proto.test.TestDeprecatedMessage_DeprecatedEnum", TestDeprecatedMessage_DeprecatedEnum_name, TestDeprecatedMessage_DeprecatedEnum_value)
- proto.RegisterType((*TestAllTypes)(nil), "goproto.proto.test.TestAllTypes")
- proto.RegisterMapType((map[bool]bool)(nil), "goproto.proto.test.TestAllTypes.MapBoolBoolEntry")
- proto.RegisterMapType((map[uint32]uint32)(nil), "goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry")
- proto.RegisterMapType((map[uint64]uint64)(nil), "goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry")
- proto.RegisterMapType((map[int32]float64)(nil), "goproto.proto.test.TestAllTypes.MapInt32DoubleEntry")
- proto.RegisterMapType((map[int32]float32)(nil), "goproto.proto.test.TestAllTypes.MapInt32FloatEntry")
- proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapInt32Int32Entry")
- proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapInt64Int64Entry")
- proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry")
- proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry")
- proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapSint32Sint32Entry")
- proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapSint64Sint64Entry")
- proto.RegisterMapType((map[string][]byte)(nil), "goproto.proto.test.TestAllTypes.MapStringBytesEntry")
- proto.RegisterMapType((map[string]TestAllTypes_NestedEnum)(nil), "goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry")
- proto.RegisterMapType((map[string]*TestAllTypes_NestedMessage)(nil), "goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry")
- proto.RegisterMapType((map[string]string)(nil), "goproto.proto.test.TestAllTypes.MapStringStringEntry")
- proto.RegisterMapType((map[uint32]uint32)(nil), "goproto.proto.test.TestAllTypes.MapUint32Uint32Entry")
- proto.RegisterMapType((map[uint64]uint64)(nil), "goproto.proto.test.TestAllTypes.MapUint64Uint64Entry")
- proto.RegisterType((*TestDeprecatedMessage)(nil), "goproto.proto.test.TestDeprecatedMessage")
- proto.RegisterType((*ForeignMessage)(nil), "goproto.proto.test.ForeignMessage")
- proto.RegisterType((*TestReservedFields)(nil), "goproto.proto.test.TestReservedFields")
- proto.RegisterType((*TestAllExtensions)(nil), "goproto.proto.test.TestAllExtensions")
- proto.RegisterType((*OptionalGroupExtension)(nil), "goproto.proto.test.OptionalGroup_extension")
- proto.RegisterType((*RepeatedGroupExtension)(nil), "goproto.proto.test.RepeatedGroup_extension")
- proto.RegisterType((*TestNestedExtension)(nil), "goproto.proto.test.TestNestedExtension")
- proto.RegisterType((*FooRequest)(nil), "goproto.proto.test.FooRequest")
- proto.RegisterType((*FooResponse)(nil), "goproto.proto.test.FooResponse")
- proto.RegisterType((*TestAllTypes_NestedMessage)(nil), "goproto.proto.test.TestAllTypes.NestedMessage")
- proto.RegisterType((*TestAllTypes_OptionalGroup)(nil), "goproto.proto.test.TestAllTypes.OptionalGroup")
- proto.RegisterType((*TestAllTypes_RepeatedGroup)(nil), "goproto.proto.test.TestAllTypes.RepeatedGroup")
- proto.RegisterExtension(E_OptionalInt32Extension)
- proto.RegisterExtension(E_OptionalInt64Extension)
- proto.RegisterExtension(E_OptionalUint32Extension)
- proto.RegisterExtension(E_OptionalUint64Extension)
- proto.RegisterExtension(E_OptionalSint32Extension)
- proto.RegisterExtension(E_OptionalSint64Extension)
- proto.RegisterExtension(E_OptionalFixed32Extension)
- proto.RegisterExtension(E_OptionalFixed64Extension)
- proto.RegisterExtension(E_OptionalSfixed32Extension)
- proto.RegisterExtension(E_OptionalSfixed64Extension)
- proto.RegisterExtension(E_OptionalFloatExtension)
- proto.RegisterExtension(E_OptionalDoubleExtension)
- proto.RegisterExtension(E_OptionalBoolExtension)
- proto.RegisterExtension(E_OptionalStringExtension)
- proto.RegisterExtension(E_OptionalBytesExtension)
- proto.RegisterExtension(E_OptionalgroupExtension)
- proto.RegisterExtension(E_OptionalNestedMessageExtension)
- proto.RegisterExtension(E_OptionalNestedEnumExtension)
- proto.RegisterExtension(E_RepeatedInt32Extension)
- proto.RegisterExtension(E_RepeatedInt64Extension)
- proto.RegisterExtension(E_RepeatedUint32Extension)
- proto.RegisterExtension(E_RepeatedUint64Extension)
- proto.RegisterExtension(E_RepeatedSint32Extension)
- proto.RegisterExtension(E_RepeatedSint64Extension)
- proto.RegisterExtension(E_RepeatedFixed32Extension)
- proto.RegisterExtension(E_RepeatedFixed64Extension)
- proto.RegisterExtension(E_RepeatedSfixed32Extension)
- proto.RegisterExtension(E_RepeatedSfixed64Extension)
- proto.RegisterExtension(E_RepeatedFloatExtension)
- proto.RegisterExtension(E_RepeatedDoubleExtension)
- proto.RegisterExtension(E_RepeatedBoolExtension)
- proto.RegisterExtension(E_RepeatedStringExtension)
- proto.RegisterExtension(E_RepeatedBytesExtension)
- proto.RegisterExtension(E_RepeatedgroupExtension)
- proto.RegisterExtension(E_RepeatedNestedMessageExtension)
- proto.RegisterExtension(E_RepeatedNestedEnumExtension)
- proto.RegisterExtension(E_TestNestedExtension_NestedStringExtension)
-}
-
var xxx_File_test_test_proto_rawdesc = []byte{
// 12074 bytes of the wire-encoded FileDescriptorProto
0x0a, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
@@ -3000,6 +2924,78 @@
xxx_File_test_test_proto_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
xxx_File_test_test_proto_messageTypes[i].PBType = mt
}
+ proto.RegisterFile("test/test.proto", xxx_File_test_test_proto_rawdesc_gzipped)
+ proto.RegisterEnum("goproto.proto.test.ForeignEnum", ForeignEnum_name, ForeignEnum_value)
+ proto.RegisterEnum("goproto.proto.test.TestReservedEnumFields", TestReservedEnumFields_name, TestReservedEnumFields_value)
+ proto.RegisterEnum("goproto.proto.test.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value)
+ proto.RegisterEnum("goproto.proto.test.TestDeprecatedMessage_DeprecatedEnum", TestDeprecatedMessage_DeprecatedEnum_name, TestDeprecatedMessage_DeprecatedEnum_value)
+ proto.RegisterType((*TestAllTypes)(nil), "goproto.proto.test.TestAllTypes")
+ proto.RegisterMapType((map[bool]bool)(nil), "goproto.proto.test.TestAllTypes.MapBoolBoolEntry")
+ proto.RegisterMapType((map[uint32]uint32)(nil), "goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry")
+ proto.RegisterMapType((map[uint64]uint64)(nil), "goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry")
+ proto.RegisterMapType((map[int32]float64)(nil), "goproto.proto.test.TestAllTypes.MapInt32DoubleEntry")
+ proto.RegisterMapType((map[int32]float32)(nil), "goproto.proto.test.TestAllTypes.MapInt32FloatEntry")
+ proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapInt32Int32Entry")
+ proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapInt64Int64Entry")
+ proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry")
+ proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry")
+ proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapSint32Sint32Entry")
+ proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapSint64Sint64Entry")
+ proto.RegisterMapType((map[string][]byte)(nil), "goproto.proto.test.TestAllTypes.MapStringBytesEntry")
+ proto.RegisterMapType((map[string]TestAllTypes_NestedEnum)(nil), "goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry")
+ proto.RegisterMapType((map[string]*TestAllTypes_NestedMessage)(nil), "goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry")
+ proto.RegisterMapType((map[string]string)(nil), "goproto.proto.test.TestAllTypes.MapStringStringEntry")
+ proto.RegisterMapType((map[uint32]uint32)(nil), "goproto.proto.test.TestAllTypes.MapUint32Uint32Entry")
+ proto.RegisterMapType((map[uint64]uint64)(nil), "goproto.proto.test.TestAllTypes.MapUint64Uint64Entry")
+ proto.RegisterType((*TestDeprecatedMessage)(nil), "goproto.proto.test.TestDeprecatedMessage")
+ proto.RegisterType((*ForeignMessage)(nil), "goproto.proto.test.ForeignMessage")
+ proto.RegisterType((*TestReservedFields)(nil), "goproto.proto.test.TestReservedFields")
+ proto.RegisterType((*TestAllExtensions)(nil), "goproto.proto.test.TestAllExtensions")
+ proto.RegisterType((*OptionalGroupExtension)(nil), "goproto.proto.test.OptionalGroup_extension")
+ proto.RegisterType((*RepeatedGroupExtension)(nil), "goproto.proto.test.RepeatedGroup_extension")
+ proto.RegisterType((*TestNestedExtension)(nil), "goproto.proto.test.TestNestedExtension")
+ proto.RegisterType((*FooRequest)(nil), "goproto.proto.test.FooRequest")
+ proto.RegisterType((*FooResponse)(nil), "goproto.proto.test.FooResponse")
+ proto.RegisterType((*TestAllTypes_NestedMessage)(nil), "goproto.proto.test.TestAllTypes.NestedMessage")
+ proto.RegisterType((*TestAllTypes_OptionalGroup)(nil), "goproto.proto.test.TestAllTypes.OptionalGroup")
+ proto.RegisterType((*TestAllTypes_RepeatedGroup)(nil), "goproto.proto.test.TestAllTypes.RepeatedGroup")
+ proto.RegisterExtension(E_OptionalInt32Extension)
+ proto.RegisterExtension(E_OptionalInt64Extension)
+ proto.RegisterExtension(E_OptionalUint32Extension)
+ proto.RegisterExtension(E_OptionalUint64Extension)
+ proto.RegisterExtension(E_OptionalSint32Extension)
+ proto.RegisterExtension(E_OptionalSint64Extension)
+ proto.RegisterExtension(E_OptionalFixed32Extension)
+ proto.RegisterExtension(E_OptionalFixed64Extension)
+ proto.RegisterExtension(E_OptionalSfixed32Extension)
+ proto.RegisterExtension(E_OptionalSfixed64Extension)
+ proto.RegisterExtension(E_OptionalFloatExtension)
+ proto.RegisterExtension(E_OptionalDoubleExtension)
+ proto.RegisterExtension(E_OptionalBoolExtension)
+ proto.RegisterExtension(E_OptionalStringExtension)
+ proto.RegisterExtension(E_OptionalBytesExtension)
+ proto.RegisterExtension(E_OptionalgroupExtension)
+ proto.RegisterExtension(E_OptionalNestedMessageExtension)
+ proto.RegisterExtension(E_OptionalNestedEnumExtension)
+ proto.RegisterExtension(E_RepeatedInt32Extension)
+ proto.RegisterExtension(E_RepeatedInt64Extension)
+ proto.RegisterExtension(E_RepeatedUint32Extension)
+ proto.RegisterExtension(E_RepeatedUint64Extension)
+ proto.RegisterExtension(E_RepeatedSint32Extension)
+ proto.RegisterExtension(E_RepeatedSint64Extension)
+ proto.RegisterExtension(E_RepeatedFixed32Extension)
+ proto.RegisterExtension(E_RepeatedFixed64Extension)
+ proto.RegisterExtension(E_RepeatedSfixed32Extension)
+ proto.RegisterExtension(E_RepeatedSfixed64Extension)
+ proto.RegisterExtension(E_RepeatedFloatExtension)
+ proto.RegisterExtension(E_RepeatedDoubleExtension)
+ proto.RegisterExtension(E_RepeatedBoolExtension)
+ proto.RegisterExtension(E_RepeatedStringExtension)
+ proto.RegisterExtension(E_RepeatedBytesExtension)
+ proto.RegisterExtension(E_RepeatedgroupExtension)
+ proto.RegisterExtension(E_RepeatedNestedMessageExtension)
+ proto.RegisterExtension(E_RepeatedNestedEnumExtension)
+ proto.RegisterExtension(E_TestNestedExtension_NestedStringExtension)
xxx_File_test_test_proto_goTypes = nil
xxx_File_test_test_proto_depIdxs = nil
}