protogen: use full filename in per-file vars

For a file "foo/bar.proto", put the FileDescriptor in "ProtoFile_foo_bar"
rather than "Bar_fileDescriptor".

Avoid name clashes when a package contains "a/foo.proto" and "b/foo.proto".

Don't camelcase the filename: These vars weren't fully camelcased to begin
with, and leaving the filename relatively unchanged is clearer and more
predictable.

Move "ProtoFile" from the end of the var name to the start, so that vars
will sort better in packages with multiple descriptors.

These changes do add a chance of name collision when the input filename
begins with an uppercase letter: Foo.proto becomes "ProtoFile_Foo", which
could be the result of camelcasing "proto_file.foo". The readability
benefits seem worth it.

Change-Id: If27d3a0d7b5bf3535aa1607a8579eb057c74d2dc
Reviewed-on: https://go-review.googlesource.com/c/163199
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Reviewed-by: Herbie Ong <herbie@google.com>
diff --git a/internal/testprotos/test/test.pb.go b/internal/testprotos/test/test.pb.go
index 7f5a58d..d039c07 100644
--- a/internal/testprotos/test/test.pb.go
+++ b/internal/testprotos/test/test.pb.go
@@ -27,7 +27,7 @@
 )
 
 func (e ForeignEnum) Type() protoreflect.EnumType {
-	return xxx_Test_protoFile_enumTypes[0]
+	return xxx_ProtoFile_test_enumTypes[0]
 }
 func (e ForeignEnum) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(e)
@@ -75,7 +75,7 @@
 )
 
 func (e TestReservedEnumFields) Type() protoreflect.EnumType {
-	return xxx_Test_protoFile_enumTypes[1]
+	return xxx_ProtoFile_test_enumTypes[1]
 }
 func (e TestReservedEnumFields) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(e)
@@ -122,7 +122,7 @@
 )
 
 func (e TestAllTypes_NestedEnum) Type() protoreflect.EnumType {
-	return xxx_Test_protoFile_enumTypes[2]
+	return xxx_ProtoFile_test_enumTypes[2]
 }
 func (e TestAllTypes_NestedEnum) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(e)
@@ -171,7 +171,7 @@
 )
 
 func (e TestDeprecatedMessage_DeprecatedEnum) Type() protoreflect.EnumType {
-	return xxx_Test_protoFile_enumTypes[3]
+	return xxx_ProtoFile_test_enumTypes[3]
 }
 func (e TestDeprecatedMessage_DeprecatedEnum) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(e)
@@ -305,7 +305,7 @@
 }
 
 func (m *TestAllTypes) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[0].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[0].MessageOf(m)
 }
 func (m *TestAllTypes) Reset()         { *m = TestAllTypes{} }
 func (m *TestAllTypes) String() string { return proto.CompactTextString(m) }
@@ -1053,7 +1053,7 @@
 }
 
 func (m *TestDeprecatedMessage) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[1].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[1].MessageOf(m)
 }
 func (m *TestDeprecatedMessage) Reset()         { *m = TestDeprecatedMessage{} }
 func (m *TestDeprecatedMessage) String() string { return proto.CompactTextString(m) }
@@ -1129,7 +1129,7 @@
 }
 
 func (m *ForeignMessage) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[2].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[2].MessageOf(m)
 }
 func (m *ForeignMessage) Reset()         { *m = ForeignMessage{} }
 func (m *ForeignMessage) String() string { return proto.CompactTextString(m) }
@@ -1177,7 +1177,7 @@
 }
 
 func (m *TestReservedFields) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[3].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[3].MessageOf(m)
 }
 func (m *TestReservedFields) Reset()         { *m = TestReservedFields{} }
 func (m *TestReservedFields) String() string { return proto.CompactTextString(m) }
@@ -1212,7 +1212,7 @@
 }
 
 func (m *TestAllExtensions) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[4].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[4].MessageOf(m)
 }
 func (m *TestAllExtensions) Reset()         { *m = TestAllExtensions{} }
 func (m *TestAllExtensions) String() string { return proto.CompactTextString(m) }
@@ -1255,7 +1255,7 @@
 }
 
 func (m *OptionalGroupExtension) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[5].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[5].MessageOf(m)
 }
 func (m *OptionalGroupExtension) Reset()         { *m = OptionalGroupExtension{} }
 func (m *OptionalGroupExtension) String() string { return proto.CompactTextString(m) }
@@ -1297,7 +1297,7 @@
 }
 
 func (m *RepeatedGroupExtension) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[6].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[6].MessageOf(m)
 }
 func (m *RepeatedGroupExtension) Reset()         { *m = RepeatedGroupExtension{} }
 func (m *RepeatedGroupExtension) String() string { return proto.CompactTextString(m) }
@@ -1338,7 +1338,7 @@
 }
 
 func (m *TestNestedExtension) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[7].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[7].MessageOf(m)
 }
 func (m *TestNestedExtension) Reset()         { *m = TestNestedExtension{} }
 func (m *TestNestedExtension) String() string { return proto.CompactTextString(m) }
@@ -1373,7 +1373,7 @@
 }
 
 func (m *FooRequest) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[8].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[8].MessageOf(m)
 }
 func (m *FooRequest) Reset()         { *m = FooRequest{} }
 func (m *FooRequest) String() string { return proto.CompactTextString(m) }
@@ -1407,7 +1407,7 @@
 }
 
 func (m *FooResponse) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[9].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[9].MessageOf(m)
 }
 func (m *FooResponse) Reset()         { *m = FooResponse{} }
 func (m *FooResponse) String() string { return proto.CompactTextString(m) }
@@ -1443,7 +1443,7 @@
 }
 
 func (m *TestAllTypes_NestedMessage) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[10].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[10].MessageOf(m)
 }
 func (m *TestAllTypes_NestedMessage) Reset()         { *m = TestAllTypes_NestedMessage{} }
 func (m *TestAllTypes_NestedMessage) String() string { return proto.CompactTextString(m) }
@@ -1492,7 +1492,7 @@
 }
 
 func (m *TestAllTypes_OptionalGroup) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[11].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[11].MessageOf(m)
 }
 func (m *TestAllTypes_OptionalGroup) Reset()         { *m = TestAllTypes_OptionalGroup{} }
 func (m *TestAllTypes_OptionalGroup) String() string { return proto.CompactTextString(m) }
@@ -1534,7 +1534,7 @@
 }
 
 func (m *TestAllTypes_RepeatedGroup) ProtoReflect() protoreflect.Message {
-	return xxx_Test_protoFile_messageTypes[12].MessageOf(m)
+	return xxx_ProtoFile_test_messageTypes[12].MessageOf(m)
 }
 func (m *TestAllTypes_RepeatedGroup) Reset()         { *m = TestAllTypes_RepeatedGroup{} }
 func (m *TestAllTypes_RepeatedGroup) String() string { return proto.CompactTextString(m) }
@@ -2744,11 +2744,11 @@
 
 const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)
 
-var Test_protoFile protoreflect.FileDescriptor
+var ProtoFile_test protoreflect.FileDescriptor
 
-var xxx_Test_protoFile_enumTypes [4]protoreflect.EnumType
-var xxx_Test_protoFile_messageTypes [30]protoimpl.MessageType
-var xxx_Test_protoFile_goTypes = []interface{}{
+var xxx_ProtoFile_test_enumTypes [4]protoreflect.EnumType
+var xxx_ProtoFile_test_messageTypes [30]protoimpl.MessageType
+var xxx_ProtoFile_test_goTypes = []interface{}{
 	(ForeignEnum)(0),                          // 0: goproto.proto.test.ForeignEnum
 	(TestReservedEnumFields)(0),               // 1: goproto.proto.test.TestReservedEnumFields
 	(TestAllTypes_NestedEnum)(0),              // 2: goproto.proto.test.TestAllTypes.NestedEnum
@@ -2786,7 +2786,7 @@
 	(*ImportMessage)(nil),                     // 34: goproto.proto.test.ImportMessage
 	(ImportEnum)(0),                           // 35: goproto.proto.test.ImportEnum
 }
-var xxx_Test_protoFile_depIdxs = []int32{
+var xxx_ProtoFile_test_depIdxs = []int32{
 	8,  // goproto.proto.test.optional_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
 	8,  // goproto.proto.test.optional_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
 	8,  // goproto.proto.test.optional_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
@@ -2879,18 +2879,18 @@
 func init() {
 	var messageTypes [30]protoreflect.MessageType
 	var extensionTypes [37]protoreflect.ExtensionType
-	Test_protoFile = protoimpl.FileBuilder{
+	ProtoFile_test = protoimpl.FileBuilder{
 		RawDescriptor:        fileDescriptor_c161fcfdc0c3ff1e,
-		GoTypes:              xxx_Test_protoFile_goTypes,
-		DependencyIndexes:    xxx_Test_protoFile_depIdxs,
-		EnumOutputTypes:      xxx_Test_protoFile_enumTypes[:],
+		GoTypes:              xxx_ProtoFile_test_goTypes,
+		DependencyIndexes:    xxx_ProtoFile_test_depIdxs,
+		EnumOutputTypes:      xxx_ProtoFile_test_enumTypes[:],
 		MessageOutputTypes:   messageTypes[:],
 		ExtensionOutputTypes: extensionTypes[:],
 	}.Init()
-	messageGoTypes := xxx_Test_protoFile_goTypes[4:][:30]
+	messageGoTypes := xxx_ProtoFile_test_goTypes[4:][:30]
 	for i, mt := range messageTypes[:] {
-		xxx_Test_protoFile_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
-		xxx_Test_protoFile_messageTypes[i].PBType = mt
+		xxx_ProtoFile_test_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
+		xxx_ProtoFile_test_messageTypes[i].PBType = mt
 	}
 	E_OptionalInt32Extension.Type = extensionTypes[0]
 	E_OptionalInt64Extension.Type = extensionTypes[1]
@@ -2929,6 +2929,6 @@
 	E_RepeatedNestedMessageExtension.Type = extensionTypes[34]
 	E_RepeatedNestedEnumExtension.Type = extensionTypes[35]
 	E_TestNestedExtension_NestedStringExtension.Type = extensionTypes[36]
-	xxx_Test_protoFile_goTypes = nil
-	xxx_Test_protoFile_depIdxs = nil
+	xxx_ProtoFile_test_goTypes = nil
+	xxx_ProtoFile_test_depIdxs = nil
 }
diff --git a/internal/testprotos/test/test_import.pb.go b/internal/testprotos/test/test_import.pb.go
index fc10e6d..c896f84 100644
--- a/internal/testprotos/test/test_import.pb.go
+++ b/internal/testprotos/test/test_import.pb.go
@@ -25,7 +25,7 @@
 )
 
 func (e ImportEnum) Type() protoreflect.EnumType {
-	return xxx_TestImport_protoFile_enumTypes[0]
+	return xxx_ProtoFile_test_import_enumTypes[0]
 }
 func (e ImportEnum) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(e)
@@ -69,7 +69,7 @@
 }
 
 func (m *ImportMessage) ProtoReflect() protoreflect.Message {
-	return xxx_TestImport_protoFile_messageTypes[0].MessageOf(m)
+	return xxx_ProtoFile_test_import_messageTypes[0].MessageOf(m)
 }
 func (m *ImportMessage) Reset()         { *m = ImportMessage{} }
 func (m *ImportMessage) String() string { return proto.CompactTextString(m) }
@@ -126,30 +126,30 @@
 
 const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)
 
-var TestImport_protoFile protoreflect.FileDescriptor
+var ProtoFile_test_import protoreflect.FileDescriptor
 
-var xxx_TestImport_protoFile_enumTypes [1]protoreflect.EnumType
-var xxx_TestImport_protoFile_messageTypes [1]protoimpl.MessageType
-var xxx_TestImport_protoFile_goTypes = []interface{}{
+var xxx_ProtoFile_test_import_enumTypes [1]protoreflect.EnumType
+var xxx_ProtoFile_test_import_messageTypes [1]protoimpl.MessageType
+var xxx_ProtoFile_test_import_goTypes = []interface{}{
 	(ImportEnum)(0),       // 0: goproto.proto.test.ImportEnum
 	(*ImportMessage)(nil), // 1: goproto.proto.test.ImportMessage
 }
-var xxx_TestImport_protoFile_depIdxs = []int32{}
+var xxx_ProtoFile_test_import_depIdxs = []int32{}
 
 func init() {
 	var messageTypes [1]protoreflect.MessageType
-	TestImport_protoFile = protoimpl.FileBuilder{
+	ProtoFile_test_import = protoimpl.FileBuilder{
 		RawDescriptor:      fileDescriptor_89be98e26346f54e,
-		GoTypes:            xxx_TestImport_protoFile_goTypes,
-		DependencyIndexes:  xxx_TestImport_protoFile_depIdxs,
-		EnumOutputTypes:    xxx_TestImport_protoFile_enumTypes[:],
+		GoTypes:            xxx_ProtoFile_test_import_goTypes,
+		DependencyIndexes:  xxx_ProtoFile_test_import_depIdxs,
+		EnumOutputTypes:    xxx_ProtoFile_test_import_enumTypes[:],
 		MessageOutputTypes: messageTypes[:],
 	}.Init()
-	messageGoTypes := xxx_TestImport_protoFile_goTypes[1:][:1]
+	messageGoTypes := xxx_ProtoFile_test_import_goTypes[1:][:1]
 	for i, mt := range messageTypes[:] {
-		xxx_TestImport_protoFile_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
-		xxx_TestImport_protoFile_messageTypes[i].PBType = mt
+		xxx_ProtoFile_test_import_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
+		xxx_ProtoFile_test_import_messageTypes[i].PBType = mt
 	}
-	xxx_TestImport_protoFile_goTypes = nil
-	xxx_TestImport_protoFile_depIdxs = nil
+	xxx_ProtoFile_test_import_goTypes = nil
+	xxx_ProtoFile_test_import_depIdxs = nil
 }
diff --git a/internal/testprotos/test/test_public.pb.go b/internal/testprotos/test/test_public.pb.go
index b316027..f4e78e0 100644
--- a/internal/testprotos/test/test_public.pb.go
+++ b/internal/testprotos/test/test_public.pb.go
@@ -25,7 +25,7 @@
 }
 
 func (m *PublicImportMessage) ProtoReflect() protoreflect.Message {
-	return xxx_TestPublic_protoFile_messageTypes[0].MessageOf(m)
+	return xxx_ProtoFile_test_public_messageTypes[0].MessageOf(m)
 }
 func (m *PublicImportMessage) Reset()         { *m = PublicImportMessage{} }
 func (m *PublicImportMessage) String() string { return proto.CompactTextString(m) }
@@ -79,27 +79,27 @@
 
 const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)
 
-var TestPublic_protoFile protoreflect.FileDescriptor
+var ProtoFile_test_public protoreflect.FileDescriptor
 
-var xxx_TestPublic_protoFile_messageTypes [1]protoimpl.MessageType
-var xxx_TestPublic_protoFile_goTypes = []interface{}{
+var xxx_ProtoFile_test_public_messageTypes [1]protoimpl.MessageType
+var xxx_ProtoFile_test_public_goTypes = []interface{}{
 	(*PublicImportMessage)(nil), // 0: goproto.proto.test.PublicImportMessage
 }
-var xxx_TestPublic_protoFile_depIdxs = []int32{}
+var xxx_ProtoFile_test_public_depIdxs = []int32{}
 
 func init() {
 	var messageTypes [1]protoreflect.MessageType
-	TestPublic_protoFile = protoimpl.FileBuilder{
+	ProtoFile_test_public = protoimpl.FileBuilder{
 		RawDescriptor:      fileDescriptor_36dd44afd5b47374,
-		GoTypes:            xxx_TestPublic_protoFile_goTypes,
-		DependencyIndexes:  xxx_TestPublic_protoFile_depIdxs,
+		GoTypes:            xxx_ProtoFile_test_public_goTypes,
+		DependencyIndexes:  xxx_ProtoFile_test_public_depIdxs,
 		MessageOutputTypes: messageTypes[:],
 	}.Init()
-	messageGoTypes := xxx_TestPublic_protoFile_goTypes[0:][:1]
+	messageGoTypes := xxx_ProtoFile_test_public_goTypes[0:][:1]
 	for i, mt := range messageTypes[:] {
-		xxx_TestPublic_protoFile_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
-		xxx_TestPublic_protoFile_messageTypes[i].PBType = mt
+		xxx_ProtoFile_test_public_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
+		xxx_ProtoFile_test_public_messageTypes[i].PBType = mt
 	}
-	xxx_TestPublic_protoFile_goTypes = nil
-	xxx_TestPublic_protoFile_depIdxs = nil
+	xxx_ProtoFile_test_public_goTypes = nil
+	xxx_ProtoFile_test_public_depIdxs = nil
 }
diff --git a/internal/testprotos/test/test_weak.pb.go b/internal/testprotos/test/test_weak.pb.go
index 2d010a0..18149d6 100644
--- a/internal/testprotos/test/test_weak.pb.go
+++ b/internal/testprotos/test/test_weak.pb.go
@@ -25,7 +25,7 @@
 }
 
 func (m *WeakImportMessage) ProtoReflect() protoreflect.Message {
-	return xxx_TestWeak_protoFile_messageTypes[0].MessageOf(m)
+	return xxx_ProtoFile_test_weak_messageTypes[0].MessageOf(m)
 }
 func (m *WeakImportMessage) Reset()         { *m = WeakImportMessage{} }
 func (m *WeakImportMessage) String() string { return proto.CompactTextString(m) }
@@ -79,27 +79,27 @@
 
 const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)
 
-var TestWeak_protoFile protoreflect.FileDescriptor
+var ProtoFile_test_weak protoreflect.FileDescriptor
 
-var xxx_TestWeak_protoFile_messageTypes [1]protoimpl.MessageType
-var xxx_TestWeak_protoFile_goTypes = []interface{}{
+var xxx_ProtoFile_test_weak_messageTypes [1]protoimpl.MessageType
+var xxx_ProtoFile_test_weak_goTypes = []interface{}{
 	(*WeakImportMessage)(nil), // 0: goproto.proto.test.WeakImportMessage
 }
-var xxx_TestWeak_protoFile_depIdxs = []int32{}
+var xxx_ProtoFile_test_weak_depIdxs = []int32{}
 
 func init() {
 	var messageTypes [1]protoreflect.MessageType
-	TestWeak_protoFile = protoimpl.FileBuilder{
+	ProtoFile_test_weak = protoimpl.FileBuilder{
 		RawDescriptor:      fileDescriptor_c2b8edfebc4f71b3,
-		GoTypes:            xxx_TestWeak_protoFile_goTypes,
-		DependencyIndexes:  xxx_TestWeak_protoFile_depIdxs,
+		GoTypes:            xxx_ProtoFile_test_weak_goTypes,
+		DependencyIndexes:  xxx_ProtoFile_test_weak_depIdxs,
 		MessageOutputTypes: messageTypes[:],
 	}.Init()
-	messageGoTypes := xxx_TestWeak_protoFile_goTypes[0:][:1]
+	messageGoTypes := xxx_ProtoFile_test_weak_goTypes[0:][:1]
 	for i, mt := range messageTypes[:] {
-		xxx_TestWeak_protoFile_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
-		xxx_TestWeak_protoFile_messageTypes[i].PBType = mt
+		xxx_ProtoFile_test_weak_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
+		xxx_ProtoFile_test_weak_messageTypes[i].PBType = mt
 	}
-	xxx_TestWeak_protoFile_goTypes = nil
-	xxx_TestWeak_protoFile_depIdxs = nil
+	xxx_ProtoFile_test_weak_goTypes = nil
+	xxx_ProtoFile_test_weak_depIdxs = nil
 }