internal/impl: rename MessageType as MessageInfo

The name MessageType is easily confused with protoreflect.MessageType.
Rename it as MessageInfo, which follows the pattern set by v1,
where the equivalent data structure is called InternalMessageInfo.

Change-Id: I535956e1f7c6e9b07e9585e889d5e93388d0d2ce
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/178478
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/cmd/protoc-gen-go-grpc/testdata/grpc/grpc.pb.go b/cmd/protoc-gen-go-grpc/testdata/grpc/grpc.pb.go
index aa87796..dc38a43 100644
--- a/cmd/protoc-gen-go-grpc/testdata/grpc/grpc.pb.go
+++ b/cmd/protoc-gen-go-grpc/testdata/grpc/grpc.pb.go
@@ -117,7 +117,7 @@
 	return file_grpc_grpc_proto_rawDescData
 }
 
-var file_grpc_grpc_proto_msgTypes = make([]protoimpl.MessageType, 2)
+var file_grpc_grpc_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 var file_grpc_grpc_proto_goTypes = []interface{}{
 	(*Request)(nil),  // 0: goproto.protoc.grpc.Request
 	(*Response)(nil), // 1: goproto.protoc.grpc.Response
diff --git a/cmd/protoc-gen-go/internal_gengo/reflect.go b/cmd/protoc-gen-go/internal_gengo/reflect.go
index 0ff2946..d1dbc03 100644
--- a/cmd/protoc-gen-go/internal_gengo/reflect.go
+++ b/cmd/protoc-gen-go/internal_gengo/reflect.go
@@ -28,7 +28,7 @@
 		g.P("var ", enumTypesVarName(f), " = make([]", protoreflectPackage.Ident("EnumType"), ",", len(f.allEnums), ")")
 	}
 	if len(f.allMessages) > 0 {
-		g.P("var ", messageTypesVarName(f), " = make([]", protoimplPackage.Ident("MessageType"), ",", len(f.allMessages), ")")
+		g.P("var ", messageTypesVarName(f), " = make([]", protoimplPackage.Ident("MessageInfo"), ",", len(f.allMessages), ")")
 	}
 
 	// Generate a unique list of Go types for all declarations and dependencies,
diff --git a/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go b/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go
index d92d2a7..e9284d8 100644
--- a/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go
+++ b/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go
@@ -139,7 +139,7 @@
 }
 
 var file_annotations_annotations_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_annotations_annotations_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_annotations_annotations_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_annotations_annotations_proto_goTypes = []interface{}{
 	(AnnotationsTestEnum)(0),       // 0: goproto.protoc.annotations.AnnotationsTestEnum
 	(*AnnotationsTestMessage)(nil), // 1: goproto.protoc.annotations.AnnotationsTestMessage
diff --git a/cmd/protoc-gen-go/testdata/comments/comments.pb.go b/cmd/protoc-gen-go/testdata/comments/comments.pb.go
index 49483ae..0ba3de2 100644
--- a/cmd/protoc-gen-go/testdata/comments/comments.pb.go
+++ b/cmd/protoc-gen-go/testdata/comments/comments.pb.go
@@ -275,7 +275,7 @@
 	return file_comments_comments_proto_rawDescData
 }
 
-var file_comments_comments_proto_msgTypes = make([]protoimpl.MessageType, 6)
+var file_comments_comments_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
 var file_comments_comments_proto_goTypes = []interface{}{
 	(*Message1)(nil),           // 0: goproto.protoc.comments.Message1
 	(*Message2)(nil),           // 1: goproto.protoc.comments.Message2
diff --git a/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go b/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go
index cf55c78..c2bd058 100644
--- a/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go
+++ b/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go
@@ -129,7 +129,7 @@
 }
 
 var file_comments_deprecated_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_comments_deprecated_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_comments_deprecated_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_comments_deprecated_proto_goTypes = []interface{}{
 	(DeprecatedEnum)(0),       // 0: goproto.protoc.comments.DeprecatedEnum
 	(*DeprecatedMessage)(nil), // 1: goproto.protoc.comments.DeprecatedMessage
diff --git a/cmd/protoc-gen-go/testdata/extensions/base/base.pb.go b/cmd/protoc-gen-go/testdata/extensions/base/base.pb.go
index 42734fa..f68da27 100644
--- a/cmd/protoc-gen-go/testdata/extensions/base/base.pb.go
+++ b/cmd/protoc-gen-go/testdata/extensions/base/base.pb.go
@@ -132,7 +132,7 @@
 	return file_extensions_base_base_proto_rawDescData
 }
 
-var file_extensions_base_base_proto_msgTypes = make([]protoimpl.MessageType, 2)
+var file_extensions_base_base_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 var file_extensions_base_base_proto_goTypes = []interface{}{
 	(*BaseMessage)(nil),                 // 0: goproto.protoc.extension.base.BaseMessage
 	(*MessageSetWireFormatMessage)(nil), // 1: goproto.protoc.extension.base.MessageSetWireFormatMessage
diff --git a/cmd/protoc-gen-go/testdata/extensions/ext/ext.pb.go b/cmd/protoc-gen-go/testdata/extensions/ext/ext.pb.go
index 0b26bd8..9384235 100644
--- a/cmd/protoc-gen-go/testdata/extensions/ext/ext.pb.go
+++ b/cmd/protoc-gen-go/testdata/extensions/ext/ext.pb.go
@@ -1156,7 +1156,7 @@
 }
 
 var file_extensions_ext_ext_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_extensions_ext_ext_proto_msgTypes = make([]protoimpl.MessageType, 8)
+var file_extensions_ext_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
 var file_extensions_ext_ext_proto_goTypes = []interface{}{
 	(Enum)(0),                             // 0: goproto.protoc.extension.ext.Enum
 	(*Message)(nil),                       // 1: goproto.protoc.extension.ext.Message
diff --git a/cmd/protoc-gen-go/testdata/extensions/extra/extra.pb.go b/cmd/protoc-gen-go/testdata/extensions/extra/extra.pb.go
index e8b7516..b8e5349 100644
--- a/cmd/protoc-gen-go/testdata/extensions/extra/extra.pb.go
+++ b/cmd/protoc-gen-go/testdata/extensions/extra/extra.pb.go
@@ -78,7 +78,7 @@
 	return file_extensions_extra_extra_proto_rawDescData
 }
 
-var file_extensions_extra_extra_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_extensions_extra_extra_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_extensions_extra_extra_proto_goTypes = []interface{}{
 	(*ExtraMessage)(nil), // 0: goproto.protoc.extension.extra.ExtraMessage
 }
diff --git a/cmd/protoc-gen-go/testdata/extensions/proto3/ext3.pb.go b/cmd/protoc-gen-go/testdata/extensions/proto3/ext3.pb.go
index e8cf547..8b41e4a 100644
--- a/cmd/protoc-gen-go/testdata/extensions/proto3/ext3.pb.go
+++ b/cmd/protoc-gen-go/testdata/extensions/proto3/ext3.pb.go
@@ -687,7 +687,7 @@
 }
 
 var file_extensions_proto3_ext3_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_extensions_proto3_ext3_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_extensions_proto3_ext3_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_extensions_proto3_ext3_proto_goTypes = []interface{}{
 	(Enum)(0),                           // 0: goproto.protoc.extension.proto3.Enum
 	(*Message)(nil),                     // 1: goproto.protoc.extension.proto3.Message
diff --git a/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go b/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go
index 3bdfa1c..a8f24ba 100644
--- a/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go
+++ b/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go
@@ -372,7 +372,7 @@
 	return file_fieldnames_fieldnames_proto_rawDescData
 }
 
-var file_fieldnames_fieldnames_proto_msgTypes = make([]protoimpl.MessageType, 2)
+var file_fieldnames_fieldnames_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 var file_fieldnames_fieldnames_proto_goTypes = []interface{}{
 	(*Message)(nil),                      // 0: goproto.protoc.fieldnames.Message
 	(*Message_OneofMessageConflict)(nil), // 1: goproto.protoc.fieldnames.Message.OneofMessageConflict
diff --git a/cmd/protoc-gen-go/testdata/import_public/a.pb.go b/cmd/protoc-gen-go/testdata/import_public/a.pb.go
index fb39415..081f42e 100644
--- a/cmd/protoc-gen-go/testdata/import_public/a.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/a.pb.go
@@ -144,7 +144,7 @@
 	return file_import_public_a_proto_rawDescData
 }
 
-var file_import_public_a_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_import_public_a_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_import_public_a_proto_goTypes = []interface{}{
 	(*Public)(nil), // 0: goproto.protoc.import_public.Public
 	(*sub.M)(nil),  // 1: goproto.protoc.import_public.sub.M
diff --git a/cmd/protoc-gen-go/testdata/import_public/b.pb.go b/cmd/protoc-gen-go/testdata/import_public/b.pb.go
index 9d80fc7..10c7d90 100644
--- a/cmd/protoc-gen-go/testdata/import_public/b.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/b.pb.go
@@ -93,7 +93,7 @@
 	return file_import_public_b_proto_rawDescData
 }
 
-var file_import_public_b_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_import_public_b_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_import_public_b_proto_goTypes = []interface{}{
 	(*Local)(nil), // 0: goproto.protoc.import_public.Local
 	(*sub.M)(nil), // 1: goproto.protoc.import_public.sub.M
diff --git a/cmd/protoc-gen-go/testdata/import_public/c.pb.go b/cmd/protoc-gen-go/testdata/import_public/c.pb.go
index 15d1212..2d05da8 100644
--- a/cmd/protoc-gen-go/testdata/import_public/c.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/c.pb.go
@@ -98,7 +98,7 @@
 	return file_import_public_c_proto_rawDescData
 }
 
-var file_import_public_c_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_import_public_c_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_import_public_c_proto_goTypes = []interface{}{
 	(*UsingPublicImport)(nil), // 0: goproto.protoc.import_public.UsingPublicImport
 	(*Local)(nil),             // 1: goproto.protoc.import_public.Local
diff --git a/cmd/protoc-gen-go/testdata/import_public/sub/a.pb.go b/cmd/protoc-gen-go/testdata/import_public/sub/a.pb.go
index d90e5b3..2adcd23 100644
--- a/cmd/protoc-gen-go/testdata/import_public/sub/a.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/sub/a.pb.go
@@ -463,7 +463,7 @@
 }
 
 var file_import_public_sub_a_proto_enumTypes = make([]protoreflect.EnumType, 3)
-var file_import_public_sub_a_proto_msgTypes = make([]protoimpl.MessageType, 2)
+var file_import_public_sub_a_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 var file_import_public_sub_a_proto_goTypes = []interface{}{
 	(E)(0),                               // 0: goproto.protoc.import_public.sub.E
 	(M_Subenum)(0),                       // 1: goproto.protoc.import_public.sub.M.Subenum
diff --git a/cmd/protoc-gen-go/testdata/import_public/sub/b.pb.go b/cmd/protoc-gen-go/testdata/import_public/sub/b.pb.go
index c6f06ef..707bfec 100644
--- a/cmd/protoc-gen-go/testdata/import_public/sub/b.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/sub/b.pb.go
@@ -68,7 +68,7 @@
 	return file_import_public_sub_b_proto_rawDescData
 }
 
-var file_import_public_sub_b_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_import_public_sub_b_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_import_public_sub_b_proto_goTypes = []interface{}{
 	(*M2)(nil), // 0: goproto.protoc.import_public.sub.M2
 }
diff --git a/cmd/protoc-gen-go/testdata/import_public/sub2/a.pb.go b/cmd/protoc-gen-go/testdata/import_public/sub2/a.pb.go
index a492967..428377f 100644
--- a/cmd/protoc-gen-go/testdata/import_public/sub2/a.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/sub2/a.pb.go
@@ -69,7 +69,7 @@
 	return file_import_public_sub2_a_proto_rawDescData
 }
 
-var file_import_public_sub2_a_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_import_public_sub2_a_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_import_public_sub2_a_proto_goTypes = []interface{}{
 	(*Sub2Message)(nil), // 0: goproto.protoc.import_public.sub2.Sub2Message
 }
diff --git a/cmd/protoc-gen-go/testdata/imports/fmt/m.pb.go b/cmd/protoc-gen-go/testdata/imports/fmt/m.pb.go
index 4d0b765..3f5cdd6 100644
--- a/cmd/protoc-gen-go/testdata/imports/fmt/m.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/fmt/m.pb.go
@@ -66,7 +66,7 @@
 	return file_imports_fmt_m_proto_rawDescData
 }
 
-var file_imports_fmt_m_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_fmt_m_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_fmt_m_proto_goTypes = []interface{}{
 	(*M)(nil), // 0: fmt.M
 }
diff --git a/cmd/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go b/cmd/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go
index 1e13347..c1e2e93 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go
@@ -153,7 +153,7 @@
 }
 
 var file_imports_test_a_1_m1_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_imports_test_a_1_m1_proto_msgTypes = make([]protoimpl.MessageType, 2)
+var file_imports_test_a_1_m1_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 var file_imports_test_a_1_m1_proto_goTypes = []interface{}{
 	(E1)(0),      // 0: test.a.E1
 	(*M1)(nil),   // 1: test.a.M1
diff --git a/cmd/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go b/cmd/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go
index 5b940a3..4ba2564 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go
@@ -67,7 +67,7 @@
 	return file_imports_test_a_1_m2_proto_rawDescData
 }
 
-var file_imports_test_a_1_m2_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_test_a_1_m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_test_a_1_m2_proto_goTypes = []interface{}{
 	(*M2)(nil), // 0: test.a.M2
 }
diff --git a/cmd/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go b/cmd/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go
index 863ede3..28a60fd 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go
@@ -67,7 +67,7 @@
 	return file_imports_test_a_2_m3_proto_rawDescData
 }
 
-var file_imports_test_a_2_m3_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_test_a_2_m3_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_test_a_2_m3_proto_goTypes = []interface{}{
 	(*M3)(nil), // 0: test.a.M3
 }
diff --git a/cmd/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go b/cmd/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go
index 727105f..13d65b9 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go
@@ -67,7 +67,7 @@
 	return file_imports_test_a_2_m4_proto_rawDescData
 }
 
-var file_imports_test_a_2_m4_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_test_a_2_m4_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_test_a_2_m4_proto_goTypes = []interface{}{
 	(*M4)(nil), // 0: test.a.M4
 }
diff --git a/cmd/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go b/cmd/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go
index ee0fee9..b6b6f01 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go
@@ -68,7 +68,7 @@
 	return file_imports_test_b_1_m1_proto_rawDescData
 }
 
-var file_imports_test_b_1_m1_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_test_b_1_m1_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_test_b_1_m1_proto_goTypes = []interface{}{
 	(*M1)(nil), // 0: test.b.part1.M1
 }
diff --git a/cmd/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go b/cmd/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go
index dc717c0..b244ac2 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go
@@ -68,7 +68,7 @@
 	return file_imports_test_b_1_m2_proto_rawDescData
 }
 
-var file_imports_test_b_1_m2_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_test_b_1_m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_test_b_1_m2_proto_goTypes = []interface{}{
 	(*M2)(nil), // 0: test.b.part2.M2
 }
diff --git a/cmd/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go b/cmd/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go
index db25972..ea5ba70 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go
@@ -79,7 +79,7 @@
 	return file_imports_test_import_a1m1_proto_rawDescData
 }
 
-var file_imports_test_import_a1m1_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_test_import_a1m1_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_test_import_a1m1_proto_goTypes = []interface{}{
 	(*A1M1)(nil),        // 0: test.A1M1
 	(*test_a_1.M1)(nil), // 1: test.a.M1
diff --git a/cmd/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go b/cmd/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go
index e634cfc..4ea4e2c 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go
@@ -79,7 +79,7 @@
 	return file_imports_test_import_a1m2_proto_rawDescData
 }
 
-var file_imports_test_import_a1m2_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_test_import_a1m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_test_import_a1m2_proto_goTypes = []interface{}{
 	(*A1M2)(nil),        // 0: test.A1M2
 	(*test_a_1.M2)(nil), // 1: test.a.M2
diff --git a/cmd/protoc-gen-go/testdata/imports/test_import_all.pb.go b/cmd/protoc-gen-go/testdata/imports/test_import_all.pb.go
index 4d21640..d3e68e2 100644
--- a/cmd/protoc-gen-go/testdata/imports/test_import_all.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/test_import_all.pb.go
@@ -132,7 +132,7 @@
 	return file_imports_test_import_all_proto_rawDescData
 }
 
-var file_imports_test_import_all_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_imports_test_import_all_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_imports_test_import_all_proto_goTypes = []interface{}{
 	(*All)(nil),         // 0: test.All
 	(*test_a_1.M1)(nil), // 1: test.a.M1
diff --git a/cmd/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go b/cmd/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go
index 65c1987..216823c 100644
--- a/cmd/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go
+++ b/cmd/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go
@@ -99,7 +99,7 @@
 	return file_issue780_oneof_conflict_test_proto_rawDescData
 }
 
-var file_issue780_oneof_conflict_test_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_issue780_oneof_conflict_test_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_issue780_oneof_conflict_test_proto_goTypes = []interface{}{
 	(*Foo)(nil), // 0: oneoftest.Foo
 }
diff --git a/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go b/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go
index a6950ca..39160d7 100644
--- a/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go
+++ b/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go
@@ -141,7 +141,7 @@
 }
 
 var file_nopackage_nopackage_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_nopackage_nopackage_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_nopackage_nopackage_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_nopackage_nopackage_proto_goTypes = []interface{}{
 	(Enum)(0),       // 0: Enum
 	(*Message)(nil), // 1: Message
diff --git a/cmd/protoc-gen-go/testdata/proto2/enum.pb.go b/cmd/protoc-gen-go/testdata/proto2/enum.pb.go
index d66a422..acbbbba 100644
--- a/cmd/protoc-gen-go/testdata/proto2/enum.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/enum.pb.go
@@ -484,7 +484,7 @@
 }
 
 var file_proto2_enum_proto_enumTypes = make([]protoreflect.EnumType, 6)
-var file_proto2_enum_proto_msgTypes = make([]protoimpl.MessageType, 2)
+var file_proto2_enum_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 var file_proto2_enum_proto_goTypes = []interface{}{
 	(EnumType1)(0), // 0: goproto.protoc.proto2.EnumType1
 	(EnumType2)(0), // 1: goproto.protoc.proto2.EnumType2
diff --git a/cmd/protoc-gen-go/testdata/proto2/fields.pb.go b/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
index 187c725..a97e2c0 100644
--- a/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
@@ -1688,7 +1688,7 @@
 }
 
 var file_proto2_fields_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_proto2_fields_proto_msgTypes = make([]protoimpl.MessageType, 9)
+var file_proto2_fields_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
 var file_proto2_fields_proto_goTypes = []interface{}{
 	(FieldTestMessage_Enum)(0),             // 0: goproto.protoc.proto2.FieldTestMessage.Enum
 	(*FieldTestMessage)(nil),               // 1: goproto.protoc.proto2.FieldTestMessage
diff --git a/cmd/protoc-gen-go/testdata/proto2/nested_messages.pb.go b/cmd/protoc-gen-go/testdata/proto2/nested_messages.pb.go
index ef4753a..c216877 100644
--- a/cmd/protoc-gen-go/testdata/proto2/nested_messages.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/nested_messages.pb.go
@@ -162,7 +162,7 @@
 	return file_proto2_nested_messages_proto_rawDescData
 }
 
-var file_proto2_nested_messages_proto_msgTypes = make([]protoimpl.MessageType, 3)
+var file_proto2_nested_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
 var file_proto2_nested_messages_proto_goTypes = []interface{}{
 	(*Layer1)(nil),               // 0: goproto.protoc.proto2.Layer1
 	(*Layer1_Layer2)(nil),        // 1: goproto.protoc.proto2.Layer1.Layer2
diff --git a/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go b/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go
index 2853112..332b5ea 100644
--- a/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go
@@ -87,7 +87,7 @@
 	return file_proto2_proto2_proto_rawDescData
 }
 
-var file_proto2_proto2_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_proto2_proto2_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_proto2_proto2_proto_goTypes = []interface{}{
 	(*Message)(nil), // 0: goproto.protoc.proto2.Message
 }
diff --git a/cmd/protoc-gen-go/testdata/proto3/fields.pb.go b/cmd/protoc-gen-go/testdata/proto3/fields.pb.go
index 97a38f8..40e7fdc 100644
--- a/cmd/protoc-gen-go/testdata/proto3/fields.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto3/fields.pb.go
@@ -578,7 +578,7 @@
 }
 
 var file_proto3_fields_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_proto3_fields_proto_msgTypes = make([]protoimpl.MessageType, 5)
+var file_proto3_fields_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
 var file_proto3_fields_proto_goTypes = []interface{}{
 	(FieldTestMessage_Enum)(0),       // 0: goproto.protoc.proto3.FieldTestMessage.Enum
 	(*FieldTestMessage)(nil),         // 1: goproto.protoc.proto3.FieldTestMessage
diff --git a/encoding/testprotos/pb2/test.pb.go b/encoding/testprotos/pb2/test.pb.go
index bc90995..841ef58 100644
--- a/encoding/testprotos/pb2/test.pb.go
+++ b/encoding/testprotos/pb2/test.pb.go
@@ -1947,7 +1947,7 @@
 }
 
 var file_pb2_test_proto_enumTypes = make([]protoreflect.EnumType, 2)
-var file_pb2_test_proto_msgTypes = make([]protoimpl.MessageType, 20)
+var file_pb2_test_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
 var file_pb2_test_proto_goTypes = []interface{}{
 	(Enum)(0),                             // 0: pb2.Enum
 	(Enums_NestedEnum)(0),                 // 1: pb2.Enums.NestedEnum
diff --git a/encoding/testprotos/pb3/test.pb.go b/encoding/testprotos/pb3/test.pb.go
index 1df06ec..b739df1 100644
--- a/encoding/testprotos/pb3/test.pb.go
+++ b/encoding/testprotos/pb3/test.pb.go
@@ -726,7 +726,7 @@
 }
 
 var file_pb3_test_proto_enumTypes = make([]protoreflect.EnumType, 2)
-var file_pb3_test_proto_msgTypes = make([]protoimpl.MessageType, 12)
+var file_pb3_test_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
 var file_pb3_test_proto_goTypes = []interface{}{
 	(Enum)(0),             // 0: pb3.Enum
 	(Enums_NestedEnum)(0), // 1: pb3.Enums.NestedEnum
diff --git a/internal/fileinit/desc.go b/internal/fileinit/desc.go
index 0804bf8..4a0861b 100644
--- a/internal/fileinit/desc.go
+++ b/internal/fileinit/desc.go
@@ -111,7 +111,7 @@
 	// MessageOutputTypes is where Init stores all initialized message types
 	// in "flattened ordering". This includes slots for map entry messages,
 	// which are skipped over.
-	MessageOutputTypes []pimpl.MessageType
+	MessageOutputTypes []pimpl.MessageInfo
 	// ExtensionOutputTypes is where Init stores all initialized extension types
 	// in "flattened ordering".
 	ExtensionOutputTypes []pref.ExtensionType
diff --git a/internal/impl/codec_extension.go b/internal/impl/codec_extension.go
index b92932d..714dec7 100644
--- a/internal/impl/codec_extension.go
+++ b/internal/impl/codec_extension.go
@@ -15,7 +15,7 @@
 	funcs   ifaceCoderFuncs
 }
 
-func (mi *MessageType) extensionFieldInfo(desc *piface.ExtensionDescV1) *extensionFieldInfo {
+func (mi *MessageInfo) extensionFieldInfo(desc *piface.ExtensionDescV1) *extensionFieldInfo {
 	// As of this time (Go 1.12, linux/amd64), an RWMutex benchmarks as faster
 	// than a sync.Map.
 	mi.extensionFieldInfosMu.RLock()
diff --git a/internal/impl/encode.go b/internal/impl/encode.go
index c0fce6c..e3ba7cf 100644
--- a/internal/impl/encode.go
+++ b/internal/impl/encode.go
@@ -49,11 +49,11 @@
 func (o marshalOptions) UseCachedSize() bool { return o&marshalUseCachedSize != 0 }
 
 // size is protoreflect.Methods.Size.
-func (mi *MessageType) size(msg pref.ProtoMessage) (size int) {
+func (mi *MessageInfo) size(msg pref.ProtoMessage) (size int) {
 	return mi.sizePointer(pointerOfIface(msg), 0)
 }
 
-func (mi *MessageType) sizePointer(p pointer, opts marshalOptions) (size int) {
+func (mi *MessageInfo) sizePointer(p pointer, opts marshalOptions) (size int) {
 	mi.init()
 	if p.IsNil() {
 		return 0
@@ -64,7 +64,7 @@
 	return mi.sizePointerSlow(p, opts)
 }
 
-func (mi *MessageType) sizePointerSlow(p pointer, opts marshalOptions) (size int) {
+func (mi *MessageInfo) sizePointerSlow(p pointer, opts marshalOptions) (size int) {
 	if mi.extensionOffset.IsValid() {
 		e := p.Apply(mi.extensionOffset).Extensions()
 		size += mi.sizeExtensions(e, opts)
@@ -90,11 +90,11 @@
 }
 
 // marshalAppend is protoreflect.Methods.MarshalAppend.
-func (mi *MessageType) marshalAppend(b []byte, msg pref.ProtoMessage, opts piface.MarshalOptions) ([]byte, error) {
+func (mi *MessageInfo) marshalAppend(b []byte, msg pref.ProtoMessage, opts piface.MarshalOptions) ([]byte, error) {
 	return mi.marshalAppendPointer(b, pointerOfIface(msg), newMarshalOptions(opts))
 }
 
-func (mi *MessageType) marshalAppendPointer(b []byte, p pointer, opts marshalOptions) ([]byte, error) {
+func (mi *MessageInfo) marshalAppendPointer(b []byte, p pointer, opts marshalOptions) ([]byte, error) {
 	mi.init()
 	if p.IsNil() {
 		return b, nil
@@ -130,7 +130,7 @@
 	return b, nerr.E
 }
 
-func (mi *MessageType) sizeExtensions(ext *legacyExtensionMap, opts marshalOptions) (n int) {
+func (mi *MessageInfo) sizeExtensions(ext *legacyExtensionMap, opts marshalOptions) (n int) {
 	if ext == nil {
 		return 0
 	}
@@ -144,7 +144,7 @@
 	return n
 }
 
-func (mi *MessageType) appendExtensions(b []byte, ext *legacyExtensionMap, opts marshalOptions) ([]byte, error) {
+func (mi *MessageInfo) appendExtensions(b []byte, ext *legacyExtensionMap, opts marshalOptions) ([]byte, error) {
 	if ext == nil {
 		return b, nil
 	}
diff --git a/internal/impl/encode_field.go b/internal/impl/encode_field.go
index 6dbbed1..2e4884d 100644
--- a/internal/impl/encode_field.go
+++ b/internal/impl/encode_field.go
@@ -70,13 +70,13 @@
 }
 
 func makeMessageFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
-	if fi, ok := getMessageType(ft); ok {
+	if fi, ok := getMessageInfo(ft); ok {
 		return pointerCoderFuncs{
 			size: func(p pointer, tagsize int, opts marshalOptions) int {
-				return sizeMessageType(p, fi, tagsize, opts)
+				return sizeMessageInfo(p, fi, tagsize, opts)
 			},
 			marshal: func(b []byte, p pointer, wiretag uint64, opts marshalOptions) ([]byte, error) {
-				return appendMessageType(b, p, wiretag, fi, opts)
+				return appendMessageInfo(b, p, wiretag, fi, opts)
 			},
 		}
 	} else {
@@ -93,11 +93,11 @@
 	}
 }
 
-func sizeMessageType(p pointer, mi *MessageType, tagsize int, opts marshalOptions) int {
+func sizeMessageInfo(p pointer, mi *MessageInfo, tagsize int, opts marshalOptions) int {
 	return wire.SizeBytes(mi.sizePointer(p.Elem(), opts)) + tagsize
 }
 
-func appendMessageType(b []byte, p pointer, wiretag uint64, mi *MessageType, opts marshalOptions) ([]byte, error) {
+func appendMessageInfo(b []byte, p pointer, wiretag uint64, mi *MessageInfo, opts marshalOptions) ([]byte, error) {
 	b = wire.AppendVarint(b, wiretag)
 	b = wire.AppendVarint(b, uint64(mi.sizePointer(p.Elem(), opts)))
 	return mi.marshalAppendPointer(b, p.Elem(), opts)
@@ -129,7 +129,7 @@
 }
 
 func makeGroupFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
-	if fi, ok := getMessageType(ft); ok {
+	if fi, ok := getMessageInfo(ft); ok {
 		return pointerCoderFuncs{
 			size: func(p pointer, tagsize int, opts marshalOptions) int {
 				return sizeGroupType(p, fi, tagsize, opts)
@@ -152,11 +152,11 @@
 	}
 }
 
-func sizeGroupType(p pointer, mi *MessageType, tagsize int, opts marshalOptions) int {
+func sizeGroupType(p pointer, mi *MessageInfo, tagsize int, opts marshalOptions) int {
 	return 2*tagsize + mi.sizePointer(p.Elem(), opts)
 }
 
-func appendGroupType(b []byte, p pointer, wiretag uint64, mi *MessageType, opts marshalOptions) ([]byte, error) {
+func appendGroupType(b []byte, p pointer, wiretag uint64, mi *MessageInfo, opts marshalOptions) ([]byte, error) {
 	b = wire.AppendVarint(b, wiretag) // start group
 	b, err := mi.marshalAppendPointer(b, p.Elem(), opts)
 	b = wire.AppendVarint(b, wiretag+1) // end group
@@ -190,7 +190,7 @@
 }
 
 func makeMessageSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
-	if fi, ok := getMessageType(ft); ok {
+	if fi, ok := getMessageInfo(ft); ok {
 		return pointerCoderFuncs{
 			marshal: func(b []byte, p pointer, wiretag uint64, opts marshalOptions) ([]byte, error) {
 				return appendMessageSliceInfo(b, p, wiretag, fi, opts)
@@ -210,7 +210,7 @@
 	}
 }
 
-func sizeMessageSliceInfo(p pointer, mi *MessageType, tagsize int, opts marshalOptions) int {
+func sizeMessageSliceInfo(p pointer, mi *MessageInfo, tagsize int, opts marshalOptions) int {
 	s := p.PointerSlice()
 	n := 0
 	for _, v := range s {
@@ -219,7 +219,7 @@
 	return n
 }
 
-func appendMessageSliceInfo(b []byte, p pointer, wiretag uint64, mi *MessageType, opts marshalOptions) ([]byte, error) {
+func appendMessageSliceInfo(b []byte, p pointer, wiretag uint64, mi *MessageInfo, opts marshalOptions) ([]byte, error) {
 	s := p.PointerSlice()
 	var nerr errors.NonFatal
 	var err error
@@ -280,7 +280,7 @@
 }
 
 func makeGroupSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
-	if fi, ok := getMessageType(ft); ok {
+	if fi, ok := getMessageInfo(ft); ok {
 		return pointerCoderFuncs{
 			size: func(p pointer, tagsize int, opts marshalOptions) int {
 				return sizeGroupSliceInfo(p, fi, tagsize, opts)
@@ -326,7 +326,7 @@
 	return b, nerr.E
 }
 
-func sizeGroupSliceInfo(p pointer, mi *MessageType, tagsize int, opts marshalOptions) int {
+func sizeGroupSliceInfo(p pointer, mi *MessageInfo, tagsize int, opts marshalOptions) int {
 	s := p.PointerSlice()
 	n := 0
 	for _, v := range s {
@@ -335,7 +335,7 @@
 	return n
 }
 
-func appendGroupSliceInfo(b []byte, p pointer, wiretag uint64, mi *MessageType, opts marshalOptions) ([]byte, error) {
+func appendGroupSliceInfo(b []byte, p pointer, wiretag uint64, mi *MessageInfo, opts marshalOptions) ([]byte, error) {
 	s := p.PointerSlice()
 	var nerr errors.NonFatal
 	var err error
diff --git a/internal/impl/message.go b/internal/impl/message.go
index 1c6ab9b..d64ee7f 100644
--- a/internal/impl/message.go
+++ b/internal/impl/message.go
@@ -18,10 +18,10 @@
 	piface "google.golang.org/protobuf/runtime/protoiface"
 )
 
-// MessageType provides protobuf related functionality for a given Go type
-// that represents a message. A given instance of MessageType is tied to
+// MessageInfo provides protobuf related functionality for a given Go type
+// that represents a message. A given instance of MessageInfo is tied to
 // exactly one Go type, which must be a pointer to a struct type.
-type MessageType struct {
+type MessageInfo struct {
 	// GoType is the underlying message Go type and must be populated.
 	// Once set, this field must never be mutated.
 	GoType reflect.Type // pointer to struct
@@ -53,13 +53,13 @@
 
 var prefMessageType = reflect.TypeOf((*pref.Message)(nil)).Elem()
 
-// getMessageType returns the MessageType (if any) for a type.
+// getMessageInfo returns the MessageInfo (if any) for a type.
 //
-// We find the MessageType by calling the ProtoReflect method on the type's
+// We find the MessageInfo by calling the ProtoReflect method on the type's
 // zero value and looking at the returned type to see if it is a
-// messageReflectWrapper. Note that the MessageType may still be uninitialized
+// messageReflectWrapper. Note that the MessageInfo may still be uninitialized
 // at this point.
-func getMessageType(mt reflect.Type) (mi *MessageType, ok bool) {
+func getMessageInfo(mt reflect.Type) (mi *MessageInfo, ok bool) {
 	method, ok := mt.MethodByName("ProtoReflect")
 	if !ok {
 		return nil, false
@@ -75,7 +75,7 @@
 	return m.mi, true
 }
 
-func (mi *MessageType) init() {
+func (mi *MessageInfo) init() {
 	// This function is called in the hot path. Inline the sync.Once
 	// logic, since allocating a closure for Once.Do is expensive.
 	// Keep init small to ensure that it can be inlined.
@@ -85,7 +85,7 @@
 	mi.initOnce()
 }
 
-func (mi *MessageType) initOnce() {
+func (mi *MessageInfo) initOnce() {
 	mi.initMu.Lock()
 	defer mi.initMu.Unlock()
 	if mi.initDone == 1 {
@@ -108,7 +108,7 @@
 
 var sizecacheType = reflect.TypeOf(int32(0))
 
-func (mi *MessageType) makeMethods(t reflect.Type) {
+func (mi *MessageInfo) makeMethods(t reflect.Type) {
 	mi.extensionOffset = invalidOffset
 	if fx, _ := t.FieldByName("XXX_InternalExtensions"); fx.Type == extType {
 		mi.extensionOffset = offsetOf(fx)
@@ -135,7 +135,7 @@
 	oneofWrappersByNumber map[pref.FieldNumber]reflect.Type
 }
 
-func (mi *MessageType) makeStructInfo(t reflect.Type) structInfo {
+func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo {
 	// Generate a mapping of field numbers and names to Go struct field or type.
 	si := structInfo{
 		fieldsByNumber:        map[pref.FieldNumber]reflect.StructField{},
@@ -186,7 +186,7 @@
 //
 // This code assumes that the struct is well-formed and panics if there are
 // any discrepancies.
-func (mi *MessageType) makeKnownFieldsFunc(si structInfo) {
+func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) {
 	mi.fields = map[pref.FieldNumber]*fieldInfo{}
 	mi.fieldsOrdered = make([]*fieldInfo, 0, mi.PBType.Fields().Len())
 	for i := 0; i < mi.PBType.Descriptor().Fields().Len(); i++ {
@@ -230,7 +230,7 @@
 	}
 }
 
-func (mi *MessageType) makeUnknownFieldsFunc(t reflect.Type) {
+func (mi *MessageInfo) makeUnknownFieldsFunc(t reflect.Type) {
 	if f := makeLegacyUnknownFieldsFunc(t); f != nil {
 		mi.unknownFields = f
 		return
@@ -240,7 +240,7 @@
 	}
 }
 
-func (mi *MessageType) makeExtensionFieldsFunc(t reflect.Type) {
+func (mi *MessageInfo) makeExtensionFieldsFunc(t reflect.Type) {
 	if f := makeLegacyExtensionFieldsFunc(t); f != nil {
 		mi.extensionFields = f
 		return
@@ -250,16 +250,16 @@
 	}
 }
 
-func (mi *MessageType) MessageOf(p interface{}) pref.Message {
+func (mi *MessageInfo) MessageOf(p interface{}) pref.Message {
 	return (*messageReflectWrapper)(mi.dataTypeOf(p))
 }
 
-func (mi *MessageType) Methods() *piface.Methods {
+func (mi *MessageInfo) Methods() *piface.Methods {
 	mi.init()
 	return &mi.methods
 }
 
-func (mi *MessageType) dataTypeOf(p interface{}) *messageDataType {
+func (mi *MessageInfo) dataTypeOf(p interface{}) *messageDataType {
 	// TODO: Remove this check? This API is primarily used by generated code,
 	// and should not violate this assumption. Leave this check in for now to
 	// provide some sanity checks during development. This can be removed if
@@ -273,14 +273,14 @@
 // messageDataType is a tuple of a pointer to the message data and
 // a pointer to the message type.
 //
-// TODO: Unfortunately, we need to close over a pointer and MessageType,
+// TODO: Unfortunately, we need to close over a pointer and MessageInfo,
 // which incurs an an allocation. This pair is similar to a Go interface,
 // which is essentially a tuple of the same thing. We can make this efficient
 // with reflect.NamedOf (see https://golang.org/issues/16522).
 //
 // With that hypothetical API, we could dynamically create a new named type
-// that has the same underlying type as MessageType.GoType, and
-// dynamically create methods that close over MessageType.
+// that has the same underlying type as MessageInfo.GoType, and
+// dynamically create methods that close over MessageInfo.
 // Since the new type would have the same underlying type, we could directly
 // convert between pointers of those types, giving us an efficient way to swap
 // out the method set.
@@ -290,7 +290,7 @@
 //	2. generate more types and methods, at the expense of binary size increase.
 type messageDataType struct {
 	p  pointer
-	mi *MessageType
+	mi *MessageInfo
 }
 
 type messageReflectWrapper messageDataType
diff --git a/internal/impl/message_field_extension.go b/internal/impl/message_field_extension.go
index 47ccc45..ada2f87 100644
--- a/internal/impl/message_field_extension.go
+++ b/internal/impl/message_field_extension.go
@@ -45,7 +45,7 @@
 }
 
 type legacyExtensionFields struct {
-	mi *MessageType
+	mi *MessageInfo
 	x  *legacyExtensionMap
 }
 
diff --git a/internal/impl/message_test.go b/internal/impl/message_test.go
index ba4aa51..26f8db6 100644
--- a/internal/impl/message_test.go
+++ b/internal/impl/message_test.go
@@ -189,7 +189,7 @@
 	MapBytes   map[MyString]MyBytes
 )
 
-var scalarProto2Type = pimpl.MessageType{GoType: reflect.TypeOf(new(ScalarProto2)), PBType: ptype.GoMessage(
+var scalarProto2Type = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ScalarProto2)), PBType: ptype.GoMessage(
 	mustMakeMessageDesc(ptype.StandaloneMessage{
 		Syntax:   pref.Proto2,
 		FullName: "ScalarProto2",
@@ -304,7 +304,7 @@
 	MyBytesA  MyString  `protobuf:"22"`
 }
 
-var scalarProto3Type = pimpl.MessageType{GoType: reflect.TypeOf(new(ScalarProto3)), PBType: ptype.GoMessage(
+var scalarProto3Type = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ScalarProto3)), PBType: ptype.GoMessage(
 	mustMakeMessageDesc(ptype.StandaloneMessage{
 		Syntax:   pref.Proto3,
 		FullName: "ScalarProto3",
@@ -437,7 +437,7 @@
 	MyBytes4   ListStrings `protobuf:"19"`
 }
 
-var listScalarsType = pimpl.MessageType{GoType: reflect.TypeOf(new(ListScalars)), PBType: ptype.GoMessage(
+var listScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ListScalars)), PBType: ptype.GoMessage(
 	mustMakeMessageDesc(ptype.StandaloneMessage{
 		Syntax:   pref.Proto2,
 		FullName: "ListScalars",
@@ -628,7 +628,7 @@
 	}
 }
 
-var mapScalarsType = pimpl.MessageType{GoType: reflect.TypeOf(new(MapScalars)), PBType: ptype.GoMessage(
+var mapScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(MapScalars)), PBType: ptype.GoMessage(
 	mustMakeMessageDesc(ptype.StandaloneMessage{
 		Syntax:   pref.Proto2,
 		FullName: "MapScalars",
@@ -807,7 +807,7 @@
 	Union isOneofScalars_Union `protobuf_oneof:"union"`
 }
 
-var oneofScalarsType = pimpl.MessageType{GoType: reflect.TypeOf(new(OneofScalars)), PBType: ptype.GoMessage(
+var oneofScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(OneofScalars)), PBType: ptype.GoMessage(
 	mustMakeMessageDesc(ptype.StandaloneMessage{
 		Syntax:   pref.Proto2,
 		FullName: "OneofScalars",
@@ -1031,7 +1031,7 @@
 	Union         isEnumMessages_Union     `protobuf_oneof:"union"`
 }
 
-var enumMessagesType = pimpl.MessageType{GoType: reflect.TypeOf(new(EnumMessages)), PBType: ptype.GoMessage(
+var enumMessagesType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(EnumMessages)), PBType: ptype.GoMessage(
 	mustMakeMessageDesc(ptype.StandaloneMessage{
 		Syntax:   pref.Proto2,
 		FullName: "EnumMessages",
diff --git a/internal/legacy/export.go b/internal/legacy/export.go
index 794a5e4..ec87a68 100644
--- a/internal/legacy/export.go
+++ b/internal/legacy/export.go
@@ -34,7 +34,7 @@
 }
 
 func (Export) MessageTypeOf(m interface{}) pref.MessageType {
-	return loadMessageType(reflect.TypeOf(m)).PBType
+	return loadMessageInfo(reflect.TypeOf(m)).PBType
 }
 
 func (Export) MessageDescriptorOf(m interface{}) pref.MessageDescriptor {
diff --git a/internal/legacy/message.go b/internal/legacy/message.go
index 174615d..9919cdb 100644
--- a/internal/legacy/message.go
+++ b/internal/legacy/message.go
@@ -20,30 +20,30 @@
 // wrapMessage wraps v as a protoreflect.ProtoMessage,
 // where v must be a *struct kind and not implement the v2 API already.
 func wrapMessage(v reflect.Value) pref.ProtoMessage {
-	mt := loadMessageType(v.Type())
+	mt := loadMessageInfo(v.Type())
 	return mt.MessageOf(v.Interface()).Interface()
 }
 
-var messageTypeCache sync.Map // map[reflect.Type]*MessageType
+var messageTypeCache sync.Map // map[reflect.Type]*MessageInfo
 
-// loadMessageType dynamically loads a *MessageType for t,
+// loadMessageInfo dynamically loads a *MessageInfo for t,
 // where t must be a *struct kind and not implement the v2 API already.
-func loadMessageType(t reflect.Type) *pimpl.MessageType {
-	// Fast-path: check if a MessageType is cached for this concrete type.
+func loadMessageInfo(t reflect.Type) *pimpl.MessageInfo {
+	// Fast-path: check if a MessageInfo is cached for this concrete type.
 	if mt, ok := messageTypeCache.Load(t); ok {
-		return mt.(*pimpl.MessageType)
+		return mt.(*pimpl.MessageInfo)
 	}
 
-	// Slow-path: derive message descriptor and initialize MessageType.
+	// Slow-path: derive message descriptor and initialize MessageInfo.
 	md := LoadMessageDesc(t)
-	mt := new(pimpl.MessageType)
+	mt := new(pimpl.MessageInfo)
 	mt.GoType = t
 	mt.PBType = ptype.GoMessage(md, func(pref.MessageType) pref.Message {
 		p := reflect.New(t.Elem()).Interface()
 		return mt.MessageOf(p)
 	})
 	if mt, ok := messageTypeCache.LoadOrStore(t, mt); ok {
-		return mt.(*pimpl.MessageType)
+		return mt.(*pimpl.MessageInfo)
 	}
 	return mt
 }
diff --git a/internal/testprotos/conformance/conformance.pb.go b/internal/testprotos/conformance/conformance.pb.go
index b54a74d..200d5b0 100644
--- a/internal/testprotos/conformance/conformance.pb.go
+++ b/internal/testprotos/conformance/conformance.pb.go
@@ -667,7 +667,7 @@
 }
 
 var file_conformance_conformance_proto_enumTypes = make([]protoreflect.EnumType, 2)
-var file_conformance_conformance_proto_msgTypes = make([]protoimpl.MessageType, 4)
+var file_conformance_conformance_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 var file_conformance_conformance_proto_goTypes = []interface{}{
 	(WireFormat)(0),             // 0: conformance.WireFormat
 	(TestCategory)(0),           // 1: conformance.TestCategory
diff --git a/internal/testprotos/conformance/test_messages_proto2.pb.go b/internal/testprotos/conformance/test_messages_proto2.pb.go
index d9846da..c0f5d52 100644
--- a/internal/testprotos/conformance/test_messages_proto2.pb.go
+++ b/internal/testprotos/conformance/test_messages_proto2.pb.go
@@ -1826,7 +1826,7 @@
 }
 
 var file_google_protobuf_test_messages_proto2_proto_enumTypes = make([]protoreflect.EnumType, 2)
-var file_google_protobuf_test_messages_proto2_proto_msgTypes = make([]protoimpl.MessageType, 26)
+var file_google_protobuf_test_messages_proto2_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
 var file_google_protobuf_test_messages_proto2_proto_goTypes = []interface{}{
 	(ForeignEnumProto2)(0),                   // 0: protobuf_test_messages.proto2.ForeignEnumProto2
 	(TestAllTypesProto2_NestedEnum)(0),       // 1: protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
diff --git a/internal/testprotos/conformance/test_messages_proto3.pb.go b/internal/testprotos/conformance/test_messages_proto3.pb.go
index 556efd8..b63c506 100644
--- a/internal/testprotos/conformance/test_messages_proto3.pb.go
+++ b/internal/testprotos/conformance/test_messages_proto3.pb.go
@@ -2040,7 +2040,7 @@
 }
 
 var file_google_protobuf_test_messages_proto3_proto_enumTypes = make([]protoreflect.EnumType, 3)
-var file_google_protobuf_test_messages_proto3_proto_msgTypes = make([]protoimpl.MessageType, 22)
+var file_google_protobuf_test_messages_proto3_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
 var file_google_protobuf_test_messages_proto3_proto_goTypes = []interface{}{
 	(ForeignEnum)(0),                         // 0: protobuf_test_messages.proto3.ForeignEnum
 	(TestAllTypesProto3_NestedEnum)(0),       // 1: protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
diff --git a/internal/testprotos/legacy/legacy.pb.go b/internal/testprotos/legacy/legacy.pb.go
index 8253547..24b8853 100644
--- a/internal/testprotos/legacy/legacy.pb.go
+++ b/internal/testprotos/legacy/legacy.pb.go
@@ -258,7 +258,7 @@
 	return file_legacy_legacy_proto_rawDescData
 }
 
-var file_legacy_legacy_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_legacy_legacy_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_legacy_legacy_proto_goTypes = []interface{}{
 	(*Legacy)(nil),               // 0: google.golang.org.Legacy
 	(*proto2_v0_0.Message)(nil),  // 1: google.golang.org.proto2_20160225.Message
diff --git a/internal/testprotos/test/test.pb.go b/internal/testprotos/test/test.pb.go
index 91ac82e..cbf1c48 100644
--- a/internal/testprotos/test/test.pb.go
+++ b/internal/testprotos/test/test.pb.go
@@ -3314,7 +3314,7 @@
 }
 
 var file_test_test_proto_enumTypes = make([]protoreflect.EnumType, 4)
-var file_test_test_proto_msgTypes = make([]protoimpl.MessageType, 37)
+var file_test_test_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
 var file_test_test_proto_goTypes = []interface{}{
 	(ForeignEnum)(0),                          // 0: goproto.proto.test.ForeignEnum
 	(TestReservedEnumFields)(0),               // 1: goproto.proto.test.TestReservedEnumFields
diff --git a/internal/testprotos/test/test_import.pb.go b/internal/testprotos/test/test_import.pb.go
index dc8365c..6bbafe9 100644
--- a/internal/testprotos/test/test_import.pb.go
+++ b/internal/testprotos/test/test_import.pb.go
@@ -124,7 +124,7 @@
 }
 
 var file_test_test_import_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_test_test_import_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_test_test_import_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_test_test_import_proto_goTypes = []interface{}{
 	(ImportEnum)(0),       // 0: goproto.proto.test.ImportEnum
 	(*ImportMessage)(nil), // 1: goproto.proto.test.ImportMessage
diff --git a/internal/testprotos/test/test_public.pb.go b/internal/testprotos/test/test_public.pb.go
index ba065fc..050bf76 100644
--- a/internal/testprotos/test/test_public.pb.go
+++ b/internal/testprotos/test/test_public.pb.go
@@ -67,7 +67,7 @@
 	return file_test_test_public_proto_rawDescData
 }
 
-var file_test_test_public_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_test_test_public_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_test_test_public_proto_goTypes = []interface{}{
 	(*PublicImportMessage)(nil), // 0: goproto.proto.test.PublicImportMessage
 }
diff --git a/internal/testprotos/test/weak/test_weak.pb.go b/internal/testprotos/test/weak/test_weak.pb.go
index 2cb834a..187848d 100644
--- a/internal/testprotos/test/weak/test_weak.pb.go
+++ b/internal/testprotos/test/weak/test_weak.pb.go
@@ -77,7 +77,7 @@
 	return file_test_weak_test_weak_proto_rawDescData
 }
 
-var file_test_weak_test_weak_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_test_weak_test_weak_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_test_weak_test_weak_proto_goTypes = []interface{}{
 	(*WeakImportMessage)(nil), // 0: goproto.proto.test.weak.WeakImportMessage
 }
diff --git a/internal/testprotos/test3/test.pb.go b/internal/testprotos/test3/test.pb.go
index 31180d0..88f664f 100644
--- a/internal/testprotos/test3/test.pb.go
+++ b/internal/testprotos/test3/test.pb.go
@@ -1271,7 +1271,7 @@
 }
 
 var file_test3_test_proto_enumTypes = make([]protoreflect.EnumType, 2)
-var file_test3_test_proto_msgTypes = make([]protoimpl.MessageType, 20)
+var file_test3_test_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
 var file_test3_test_proto_goTypes = []interface{}{
 	(ForeignEnum)(0),                   // 0: goproto.proto.test3.ForeignEnum
 	(TestAllTypes_NestedEnum)(0),       // 1: goproto.proto.test3.TestAllTypes.NestedEnum
diff --git a/internal/testprotos/test3/test_import.pb.go b/internal/testprotos/test3/test_import.pb.go
index a281989..c36e2be 100644
--- a/internal/testprotos/test3/test_import.pb.go
+++ b/internal/testprotos/test3/test_import.pb.go
@@ -114,7 +114,7 @@
 }
 
 var file_test3_test_import_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_test3_test_import_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_test3_test_import_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_test3_test_import_proto_goTypes = []interface{}{
 	(ImportEnum)(0),       // 0: goproto.proto.test3.ImportEnum
 	(*ImportMessage)(nil), // 1: goproto.proto.test3.ImportMessage
diff --git a/reflect/protoregistry/testprotos/test.pb.go b/reflect/protoregistry/testprotos/test.pb.go
index 5f8495b..2a5453f 100644
--- a/reflect/protoregistry/testprotos/test.pb.go
+++ b/reflect/protoregistry/testprotos/test.pb.go
@@ -437,7 +437,7 @@
 }
 
 var file_test_proto_enumTypes = make([]protoreflect.EnumType, 3)
-var file_test_proto_msgTypes = make([]protoimpl.MessageType, 4)
+var file_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 var file_test_proto_goTypes = []interface{}{
 	(Enum1)(0),       // 0: testprotos.Enum1
 	(Enum2)(0),       // 1: testprotos.Enum2
diff --git a/runtime/protoimpl/impl.go b/runtime/protoimpl/impl.go
index ccdc91d..2eec9d9 100644
--- a/runtime/protoimpl/impl.go
+++ b/runtime/protoimpl/impl.go
@@ -38,7 +38,7 @@
 	// integer overflow failure when evaluating the uint constant.
 	EnforceVersion uint
 
-	MessageType = impl.MessageType
+	MessageInfo = impl.MessageInfo
 	FileBuilder = fileinit.FileBuilder
 
 	// TODO: Change these to more efficient data structures.
diff --git a/types/descriptorpb/descriptor.pb.go b/types/descriptorpb/descriptor.pb.go
index a954524..d1c6644 100644
--- a/types/descriptorpb/descriptor.pb.go
+++ b/types/descriptorpb/descriptor.pb.go
@@ -3223,7 +3223,7 @@
 }
 
 var file_google_protobuf_descriptor_proto_enumTypes = make([]protoreflect.EnumType, 6)
-var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageType, 27)
+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
 var file_google_protobuf_descriptor_proto_goTypes = []interface{}{
 	(FieldDescriptorProto_Type)(0),                // 0: google.protobuf.FieldDescriptorProto.Type
 	(FieldDescriptorProto_Label)(0),               // 1: google.protobuf.FieldDescriptorProto.Label
diff --git a/types/known/anypb/any.pb.go b/types/known/anypb/any.pb.go
index bf1109a..6be0eee 100644
--- a/types/known/anypb/any.pb.go
+++ b/types/known/anypb/any.pb.go
@@ -201,7 +201,7 @@
 	return file_google_protobuf_any_proto_rawDescData
 }
 
-var file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_google_protobuf_any_proto_goTypes = []interface{}{
 	(*Any)(nil), // 0: google.protobuf.Any
 }
diff --git a/types/known/apipb/api.pb.go b/types/known/apipb/api.pb.go
index 63da4b5..230ce50 100644
--- a/types/known/apipb/api.pb.go
+++ b/types/known/apipb/api.pb.go
@@ -432,7 +432,7 @@
 	return file_google_protobuf_api_proto_rawDescData
 }
 
-var file_google_protobuf_api_proto_msgTypes = make([]protoimpl.MessageType, 3)
+var file_google_protobuf_api_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
 var file_google_protobuf_api_proto_goTypes = []interface{}{
 	(*Api)(nil),                           // 0: google.protobuf.Api
 	(*Method)(nil),                        // 1: google.protobuf.Method
diff --git a/types/known/durationpb/duration.pb.go b/types/known/durationpb/duration.pb.go
index acd84b9..39cad77 100644
--- a/types/known/durationpb/duration.pb.go
+++ b/types/known/durationpb/duration.pb.go
@@ -162,7 +162,7 @@
 	return file_google_protobuf_duration_proto_rawDescData
 }
 
-var file_google_protobuf_duration_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_google_protobuf_duration_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_google_protobuf_duration_proto_goTypes = []interface{}{
 	(*Duration)(nil), // 0: google.protobuf.Duration
 }
diff --git a/types/known/emptypb/empty.pb.go b/types/known/emptypb/empty.pb.go
index 336bfb5..4fa11b0 100644
--- a/types/known/emptypb/empty.pb.go
+++ b/types/known/emptypb/empty.pb.go
@@ -82,7 +82,7 @@
 	return file_google_protobuf_empty_proto_rawDescData
 }
 
-var file_google_protobuf_empty_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_google_protobuf_empty_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_google_protobuf_empty_proto_goTypes = []interface{}{
 	(*Empty)(nil), // 0: google.protobuf.Empty
 }
diff --git a/types/known/fieldmaskpb/field_mask.pb.go b/types/known/fieldmaskpb/field_mask.pb.go
index d7d18ac..afd6fa7 100644
--- a/types/known/fieldmaskpb/field_mask.pb.go
+++ b/types/known/fieldmaskpb/field_mask.pb.go
@@ -282,7 +282,7 @@
 	return file_google_protobuf_field_mask_proto_rawDescData
 }
 
-var file_google_protobuf_field_mask_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_google_protobuf_field_mask_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_google_protobuf_field_mask_proto_goTypes = []interface{}{
 	(*FieldMask)(nil), // 0: google.protobuf.FieldMask
 }
diff --git a/types/known/sourcecontextpb/source_context.pb.go b/types/known/sourcecontextpb/source_context.pb.go
index 8fd0efe..151e3c8 100644
--- a/types/known/sourcecontextpb/source_context.pb.go
+++ b/types/known/sourcecontextpb/source_context.pb.go
@@ -87,7 +87,7 @@
 	return file_google_protobuf_source_context_proto_rawDescData
 }
 
-var file_google_protobuf_source_context_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_google_protobuf_source_context_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_google_protobuf_source_context_proto_goTypes = []interface{}{
 	(*SourceContext)(nil), // 0: google.protobuf.SourceContext
 }
diff --git a/types/known/structpb/struct.pb.go b/types/known/structpb/struct.pb.go
index 9720ade..29e02a0 100644
--- a/types/known/structpb/struct.pb.go
+++ b/types/known/structpb/struct.pb.go
@@ -374,7 +374,7 @@
 }
 
 var file_google_protobuf_struct_proto_enumTypes = make([]protoreflect.EnumType, 1)
-var file_google_protobuf_struct_proto_msgTypes = make([]protoimpl.MessageType, 4)
+var file_google_protobuf_struct_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 var file_google_protobuf_struct_proto_goTypes = []interface{}{
 	(NullValue)(0),    // 0: google.protobuf.NullValue
 	(*Struct)(nil),    // 1: google.protobuf.Struct
diff --git a/types/known/timestamppb/timestamp.pb.go b/types/known/timestamppb/timestamp.pb.go
index 843d8a1..fea5aae 100644
--- a/types/known/timestamppb/timestamp.pb.go
+++ b/types/known/timestamppb/timestamp.pb.go
@@ -182,7 +182,7 @@
 	return file_google_protobuf_timestamp_proto_rawDescData
 }
 
-var file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageType, 1)
+var file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_google_protobuf_timestamp_proto_goTypes = []interface{}{
 	(*Timestamp)(nil), // 0: google.protobuf.Timestamp
 }
diff --git a/types/known/typepb/type.pb.go b/types/known/typepb/type.pb.go
index 6ed50ba..61626ea 100644
--- a/types/known/typepb/type.pb.go
+++ b/types/known/typepb/type.pb.go
@@ -767,7 +767,7 @@
 }
 
 var file_google_protobuf_type_proto_enumTypes = make([]protoreflect.EnumType, 3)
-var file_google_protobuf_type_proto_msgTypes = make([]protoimpl.MessageType, 5)
+var file_google_protobuf_type_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
 var file_google_protobuf_type_proto_goTypes = []interface{}{
 	(Syntax)(0),                           // 0: google.protobuf.Syntax
 	(Field_Kind)(0),                       // 1: google.protobuf.Field.Kind
diff --git a/types/known/wrapperspb/wrappers.pb.go b/types/known/wrapperspb/wrappers.pb.go
index 125b653..ad60414 100644
--- a/types/known/wrapperspb/wrappers.pb.go
+++ b/types/known/wrapperspb/wrappers.pb.go
@@ -450,7 +450,7 @@
 	return file_google_protobuf_wrappers_proto_rawDescData
 }
 
-var file_google_protobuf_wrappers_proto_msgTypes = make([]protoimpl.MessageType, 9)
+var file_google_protobuf_wrappers_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
 var file_google_protobuf_wrappers_proto_goTypes = []interface{}{
 	(*DoubleValue)(nil), // 0: google.protobuf.DoubleValue
 	(*FloatValue)(nil),  // 1: google.protobuf.FloatValue
diff --git a/types/pluginpb/plugin.pb.go b/types/pluginpb/plugin.pb.go
index 1f422c4..e83b1ea 100644
--- a/types/pluginpb/plugin.pb.go
+++ b/types/pluginpb/plugin.pb.go
@@ -380,7 +380,7 @@
 	return file_google_protobuf_compiler_plugin_proto_rawDescData
 }
 
-var file_google_protobuf_compiler_plugin_proto_msgTypes = make([]protoimpl.MessageType, 4)
+var file_google_protobuf_compiler_plugin_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 var file_google_protobuf_compiler_plugin_proto_goTypes = []interface{}{
 	(*Version)(nil),                          // 0: google.protobuf.compiler.Version
 	(*CodeGeneratorRequest)(nil),             // 1: google.protobuf.compiler.CodeGeneratorRequest