cmd/protoc-gen-go: annotate depIdxs list with index comments

Generate the current index into depIdxs for easier human debugging.

Change-Id: Ida42aa95137b2044a4dc267c31cebec5023bdfb1
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/190278
Reviewed-by: Herbie Ong <herbie@google.com>
diff --git a/cmd/protoc-gen-go-grpc/testdata/grpc/deprecation.pb.go b/cmd/protoc-gen-go-grpc/testdata/grpc/deprecation.pb.go
index a201555..72e97fc 100644
--- a/cmd/protoc-gen-go-grpc/testdata/grpc/deprecation.pb.go
+++ b/cmd/protoc-gen-go-grpc/testdata/grpc/deprecation.pb.go
@@ -52,13 +52,13 @@
 	(*Response)(nil), // 1: goproto.protoc.grpc.Response
 }
 var file_grpc_deprecation_proto_depIdxs = []int32{
-	0, // goproto.protoc.grpc.DeprecatedService.DeprecatedCall:input_type -> goproto.protoc.grpc.Request
-	1, // goproto.protoc.grpc.DeprecatedService.DeprecatedCall:output_type -> goproto.protoc.grpc.Response
-	1, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // 0: goproto.protoc.grpc.DeprecatedService.DeprecatedCall:input_type -> goproto.protoc.grpc.Request
+	1, // 1: goproto.protoc.grpc.DeprecatedService.DeprecatedCall:output_type -> goproto.protoc.grpc.Response
+	1, // [1:2] is the sub-list for method output_type
+	0, // [0:1] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_grpc_deprecation_proto_init() }
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 670353a..8d22560 100644
--- a/cmd/protoc-gen-go-grpc/testdata/grpc/grpc.pb.go
+++ b/cmd/protoc-gen-go-grpc/testdata/grpc/grpc.pb.go
@@ -132,19 +132,19 @@
 	(*Response)(nil), // 1: goproto.protoc.grpc.Response
 }
 var file_grpc_grpc_proto_depIdxs = []int32{
-	0, // goproto.protoc.grpc.test_service.unary_call:input_type -> goproto.protoc.grpc.Request
-	0, // goproto.protoc.grpc.test_service.downstream_call:input_type -> goproto.protoc.grpc.Request
-	0, // goproto.protoc.grpc.test_service.upstream_call:input_type -> goproto.protoc.grpc.Request
-	0, // goproto.protoc.grpc.test_service.bidi_call:input_type -> goproto.protoc.grpc.Request
-	1, // goproto.protoc.grpc.test_service.unary_call:output_type -> goproto.protoc.grpc.Response
-	1, // goproto.protoc.grpc.test_service.downstream_call:output_type -> goproto.protoc.grpc.Response
-	1, // goproto.protoc.grpc.test_service.upstream_call:output_type -> goproto.protoc.grpc.Response
-	1, // goproto.protoc.grpc.test_service.bidi_call:output_type -> goproto.protoc.grpc.Response
-	4, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // 0: goproto.protoc.grpc.test_service.unary_call:input_type -> goproto.protoc.grpc.Request
+	0, // 1: goproto.protoc.grpc.test_service.downstream_call:input_type -> goproto.protoc.grpc.Request
+	0, // 2: goproto.protoc.grpc.test_service.upstream_call:input_type -> goproto.protoc.grpc.Request
+	0, // 3: goproto.protoc.grpc.test_service.bidi_call:input_type -> goproto.protoc.grpc.Request
+	1, // 4: goproto.protoc.grpc.test_service.unary_call:output_type -> goproto.protoc.grpc.Response
+	1, // 5: goproto.protoc.grpc.test_service.downstream_call:output_type -> goproto.protoc.grpc.Response
+	1, // 6: goproto.protoc.grpc.test_service.upstream_call:output_type -> goproto.protoc.grpc.Response
+	1, // 7: goproto.protoc.grpc.test_service.bidi_call:output_type -> goproto.protoc.grpc.Response
+	4, // [4:8] is the sub-list for method output_type
+	0, // [0:4] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_grpc_grpc_proto_init() }
diff --git a/cmd/protoc-gen-go/internal_gengo/reflect.go b/cmd/protoc-gen-go/internal_gengo/reflect.go
index b0d3dfb..3c1c2d5 100644
--- a/cmd/protoc-gen-go/internal_gengo/reflect.go
+++ b/cmd/protoc-gen-go/internal_gengo/reflect.go
@@ -36,7 +36,7 @@
 	seen := map[protoreflect.FullName]int{}
 	genDep := func(name protoreflect.FullName, depSource string) {
 		if depSource != "" {
-			line := fmt.Sprintf("%d, // %s -> %s", seen[name], depSource, name)
+			line := fmt.Sprintf("%d, // %d: %s -> %s", seen[name], len(depIdxs), depSource, name)
 			depIdxs = append(depIdxs, line)
 		}
 	}
@@ -73,14 +73,18 @@
 
 	// This ordering is significant.
 	// See filetype.TypeBuilder.DependencyIndexes.
-	var depOffsets []string
+	type offsetEntry struct {
+		start int
+		name  string
+	}
+	var depOffsets []offsetEntry
 	for _, enum := range f.allEnums {
 		genEnum(enum, "")
 	}
 	for _, message := range f.allMessages {
 		genMessage(message, "")
 	}
-	depOffsets = append(depOffsets, fmt.Sprintf("%d, // starting offset of field type_name sub-list", len(depIdxs)))
+	depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "field type_name"})
 	for _, message := range f.allMessages {
 		for _, field := range message.Fields {
 			if field.Desc.IsWeak() {
@@ -91,33 +95,36 @@
 			genMessage(field.Message, source+":type_name")
 		}
 	}
-	depOffsets = append(depOffsets, fmt.Sprintf("%d, // starting offset of extension extendee sub-list", len(depIdxs)))
+	depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "extension extendee"})
 	for _, extension := range f.allExtensions {
 		source := string(extension.Desc.FullName())
 		genMessage(extension.Extendee, source+":extendee")
 	}
-	depOffsets = append(depOffsets, fmt.Sprintf("%d, // starting offset of extension type_name sub-list", len(depIdxs)))
+	depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "extension type_name"})
 	for _, extension := range f.allExtensions {
 		source := string(extension.Desc.FullName())
 		genEnum(extension.Enum, source+":type_name")
 		genMessage(extension.Message, source+":type_name")
 	}
-	depOffsets = append(depOffsets, fmt.Sprintf("%d, // starting offset of method input_type sub-list", len(depIdxs)))
+	depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "method input_type"})
 	for _, service := range f.Services {
 		for _, method := range service.Methods {
 			source := string(method.Desc.FullName())
 			genMessage(method.Input, source+":input_type")
 		}
 	}
-	depOffsets = append(depOffsets, fmt.Sprintf("%d, // starting offset of method output_type sub-list", len(depIdxs)))
+	depOffsets = append(depOffsets, offsetEntry{len(depIdxs), "method output_type"})
 	for _, service := range f.Services {
 		for _, method := range service.Methods {
 			source := string(method.Desc.FullName())
 			genMessage(method.Output, source+":output_type")
 		}
 	}
-	for i := len(depOffsets) - 1; i >= 0; i-- {
-		depIdxs = append(depIdxs, depOffsets[i])
+	depOffsets = append(depOffsets, offsetEntry{len(depIdxs), ""})
+	for i := len(depOffsets) - 2; i >= 0; i-- {
+		curr, next := depOffsets[i], depOffsets[i+1]
+		depIdxs = append(depIdxs, fmt.Sprintf("%d, // [%d:%d] is the sub-list for %s",
+			curr.start, curr.start, next.start, curr.name))
 	}
 	if len(depIdxs) > math.MaxInt32 {
 		panic("too many dependencies") // sanity check
diff --git a/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go b/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go
index a9d3d82..0efeb5e 100644
--- a/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go
+++ b/cmd/protoc-gen-go/testdata/annotations/annotations.pb.go
@@ -150,11 +150,11 @@
 	(*AnnotationsTestMessage)(nil), // 1: goproto.protoc.annotations.AnnotationsTestMessage
 }
 var file_annotations_annotations_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_annotations_annotations_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/comments/comments.pb.go b/cmd/protoc-gen-go/testdata/comments/comments.pb.go
index d831634..b83cd3e 100644
--- a/cmd/protoc-gen-go/testdata/comments/comments.pb.go
+++ b/cmd/protoc-gen-go/testdata/comments/comments.pb.go
@@ -404,13 +404,13 @@
 	(*Message2_Message2B)(nil), // 6: goproto.protoc.comments.Message2.Message2B
 }
 var file_comments_comments_proto_depIdxs = []int32{
-	1, // goproto.protoc.comments.extension:extendee -> goproto.protoc.comments.Message1
-	1, // goproto.protoc.comments.extension:type_name -> goproto.protoc.comments.Message1
-	2, // starting offset of method output_type sub-list
-	2, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: goproto.protoc.comments.extension:extendee -> goproto.protoc.comments.Message1
+	1, // 1: goproto.protoc.comments.extension:type_name -> goproto.protoc.comments.Message1
+	2, // [2:2] is the sub-list for method output_type
+	2, // [2:2] is the sub-list for method input_type
+	1, // [1:2] is the sub-list for extension type_name
+	0, // [0:1] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_comments_comments_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go b/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go
index fd53a8f..fe52dc8 100644
--- a/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go
+++ b/cmd/protoc-gen-go/testdata/comments/deprecated.pb.go
@@ -144,11 +144,11 @@
 	(*DeprecatedMessage)(nil), // 1: goproto.protoc.comments.DeprecatedMessage
 }
 var file_comments_deprecated_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_comments_deprecated_proto_init() }
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 18ad84b..8b30659 100644
--- a/cmd/protoc-gen-go/testdata/extensions/base/base.pb.go
+++ b/cmd/protoc-gen-go/testdata/extensions/base/base.pb.go
@@ -149,11 +149,11 @@
 	(*MessageSetWireFormatMessage)(nil), // 1: goproto.protoc.extension.base.MessageSetWireFormatMessage
 }
 var file_extensions_base_base_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_extensions_base_base_proto_init() }
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 bdc3c11..7e6a477 100644
--- a/cmd/protoc-gen-go/testdata/extensions/ext/ext.pb.go
+++ b/cmd/protoc-gen-go/testdata/extensions/ext/ext.pb.go
@@ -1176,67 +1176,67 @@
 	(*extra.ExtraMessage)(nil),                          // 11: goproto.protoc.extension.extra.ExtraMessage
 }
 var file_extensions_ext_ext_proto_depIdxs = []int32{
-	9,  // goproto.protoc.extension.ext.extension_bool:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_enum:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_int32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_sint32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_uint32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_int64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_sint64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_uint64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_sfixed32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_fixed32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_float:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_sfixed64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_fixed64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_double:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_string:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_bytes:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_Message:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extension_MessageM:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extensiongroup:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extra_message:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_bool:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_enum:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_int32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_sint32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_uint32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_int64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_sint64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_uint64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_sfixed32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_fixed32:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_float:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_sfixed64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_fixed64:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_double:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_string:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_bytes:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeated_x_Message:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.repeatedgroup:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.extendable_field:extendee -> goproto.protoc.extension.base.BaseMessage
-	5,  // goproto.protoc.extension.ext.extendable_string_field:extendee -> goproto.protoc.extension.ext.Extendable
-	10, // goproto.protoc.extension.ext.message_set_extension:extendee -> goproto.protoc.extension.base.MessageSetWireFormatMessage
-	9,  // goproto.protoc.extension.ext.ExtendingMessage.extending_message_string:extendee -> goproto.protoc.extension.base.BaseMessage
-	9,  // goproto.protoc.extension.ext.ExtendingMessage.extending_message_submessage:extendee -> goproto.protoc.extension.base.BaseMessage
-	10, // goproto.protoc.extension.ext.MessageSetWireFormatExtension.message_set_extension:extendee -> goproto.protoc.extension.base.MessageSetWireFormatMessage
-	0,  // goproto.protoc.extension.ext.extension_enum:type_name -> goproto.protoc.extension.ext.Enum
-	1,  // goproto.protoc.extension.ext.extension_Message:type_name -> goproto.protoc.extension.ext.Message
-	7,  // goproto.protoc.extension.ext.extension_MessageM:type_name -> goproto.protoc.extension.ext.Message.M
-	2,  // goproto.protoc.extension.ext.extensiongroup:type_name -> goproto.protoc.extension.ext.ExtensionGroup
-	11, // goproto.protoc.extension.ext.extra_message:type_name -> goproto.protoc.extension.extra.ExtraMessage
-	0,  // goproto.protoc.extension.ext.repeated_x_enum:type_name -> goproto.protoc.extension.ext.Enum
-	1,  // goproto.protoc.extension.ext.repeated_x_Message:type_name -> goproto.protoc.extension.ext.Message
-	4,  // goproto.protoc.extension.ext.repeatedgroup:type_name -> goproto.protoc.extension.ext.RepeatedGroup
-	5,  // goproto.protoc.extension.ext.extendable_field:type_name -> goproto.protoc.extension.ext.Extendable
-	6,  // goproto.protoc.extension.ext.message_set_extension:type_name -> goproto.protoc.extension.ext.MessageSetWireFormatExtension
-	8,  // goproto.protoc.extension.ext.ExtendingMessage.extending_message_submessage:type_name -> goproto.protoc.extension.ext.ExtendingMessage.ExtendingMessageSubmessage
-	6,  // goproto.protoc.extension.ext.MessageSetWireFormatExtension.message_set_extension:type_name -> goproto.protoc.extension.ext.MessageSetWireFormatExtension
-	56, // starting offset of method output_type sub-list
-	56, // starting offset of method input_type sub-list
-	44, // starting offset of extension type_name sub-list
-	0,  // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	9,  // 0: goproto.protoc.extension.ext.extension_bool:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 1: goproto.protoc.extension.ext.extension_enum:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 2: goproto.protoc.extension.ext.extension_int32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 3: goproto.protoc.extension.ext.extension_sint32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 4: goproto.protoc.extension.ext.extension_uint32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 5: goproto.protoc.extension.ext.extension_int64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 6: goproto.protoc.extension.ext.extension_sint64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 7: goproto.protoc.extension.ext.extension_uint64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 8: goproto.protoc.extension.ext.extension_sfixed32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 9: goproto.protoc.extension.ext.extension_fixed32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 10: goproto.protoc.extension.ext.extension_float:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 11: goproto.protoc.extension.ext.extension_sfixed64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 12: goproto.protoc.extension.ext.extension_fixed64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 13: goproto.protoc.extension.ext.extension_double:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 14: goproto.protoc.extension.ext.extension_string:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 15: goproto.protoc.extension.ext.extension_bytes:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 16: goproto.protoc.extension.ext.extension_Message:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 17: goproto.protoc.extension.ext.extension_MessageM:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 18: goproto.protoc.extension.ext.extensiongroup:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 19: goproto.protoc.extension.ext.extra_message:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 20: goproto.protoc.extension.ext.repeated_x_bool:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 21: goproto.protoc.extension.ext.repeated_x_enum:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 22: goproto.protoc.extension.ext.repeated_x_int32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 23: goproto.protoc.extension.ext.repeated_x_sint32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 24: goproto.protoc.extension.ext.repeated_x_uint32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 25: goproto.protoc.extension.ext.repeated_x_int64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 26: goproto.protoc.extension.ext.repeated_x_sint64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 27: goproto.protoc.extension.ext.repeated_x_uint64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 28: goproto.protoc.extension.ext.repeated_x_sfixed32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 29: goproto.protoc.extension.ext.repeated_x_fixed32:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 30: goproto.protoc.extension.ext.repeated_x_float:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 31: goproto.protoc.extension.ext.repeated_x_sfixed64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 32: goproto.protoc.extension.ext.repeated_x_fixed64:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 33: goproto.protoc.extension.ext.repeated_x_double:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 34: goproto.protoc.extension.ext.repeated_x_string:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 35: goproto.protoc.extension.ext.repeated_x_bytes:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 36: goproto.protoc.extension.ext.repeated_x_Message:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 37: goproto.protoc.extension.ext.repeatedgroup:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 38: goproto.protoc.extension.ext.extendable_field:extendee -> goproto.protoc.extension.base.BaseMessage
+	5,  // 39: goproto.protoc.extension.ext.extendable_string_field:extendee -> goproto.protoc.extension.ext.Extendable
+	10, // 40: goproto.protoc.extension.ext.message_set_extension:extendee -> goproto.protoc.extension.base.MessageSetWireFormatMessage
+	9,  // 41: goproto.protoc.extension.ext.ExtendingMessage.extending_message_string:extendee -> goproto.protoc.extension.base.BaseMessage
+	9,  // 42: goproto.protoc.extension.ext.ExtendingMessage.extending_message_submessage:extendee -> goproto.protoc.extension.base.BaseMessage
+	10, // 43: goproto.protoc.extension.ext.MessageSetWireFormatExtension.message_set_extension:extendee -> goproto.protoc.extension.base.MessageSetWireFormatMessage
+	0,  // 44: goproto.protoc.extension.ext.extension_enum:type_name -> goproto.protoc.extension.ext.Enum
+	1,  // 45: goproto.protoc.extension.ext.extension_Message:type_name -> goproto.protoc.extension.ext.Message
+	7,  // 46: goproto.protoc.extension.ext.extension_MessageM:type_name -> goproto.protoc.extension.ext.Message.M
+	2,  // 47: goproto.protoc.extension.ext.extensiongroup:type_name -> goproto.protoc.extension.ext.ExtensionGroup
+	11, // 48: goproto.protoc.extension.ext.extra_message:type_name -> goproto.protoc.extension.extra.ExtraMessage
+	0,  // 49: goproto.protoc.extension.ext.repeated_x_enum:type_name -> goproto.protoc.extension.ext.Enum
+	1,  // 50: goproto.protoc.extension.ext.repeated_x_Message:type_name -> goproto.protoc.extension.ext.Message
+	4,  // 51: goproto.protoc.extension.ext.repeatedgroup:type_name -> goproto.protoc.extension.ext.RepeatedGroup
+	5,  // 52: goproto.protoc.extension.ext.extendable_field:type_name -> goproto.protoc.extension.ext.Extendable
+	6,  // 53: goproto.protoc.extension.ext.message_set_extension:type_name -> goproto.protoc.extension.ext.MessageSetWireFormatExtension
+	8,  // 54: goproto.protoc.extension.ext.ExtendingMessage.extending_message_submessage:type_name -> goproto.protoc.extension.ext.ExtendingMessage.ExtendingMessageSubmessage
+	6,  // 55: goproto.protoc.extension.ext.MessageSetWireFormatExtension.message_set_extension:type_name -> goproto.protoc.extension.ext.MessageSetWireFormatExtension
+	56, // [56:56] is the sub-list for method output_type
+	56, // [56:56] is the sub-list for method input_type
+	44, // [44:56] is the sub-list for extension type_name
+	0,  // [0:44] is the sub-list for extension extendee
+	0,  // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_extensions_ext_ext_proto_init() }
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 da2f966..2714844 100644
--- a/cmd/protoc-gen-go/testdata/extensions/extra/extra.pb.go
+++ b/cmd/protoc-gen-go/testdata/extensions/extra/extra.pb.go
@@ -89,11 +89,11 @@
 	(*ExtraMessage)(nil), // 0: goproto.protoc.extension.extra.ExtraMessage
 }
 var file_extensions_extra_extra_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_extensions_extra_extra_proto_init() }
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 afadf1f..6243cd7 100644
--- a/cmd/protoc-gen-go/testdata/extensions/proto3/ext3.pb.go
+++ b/cmd/protoc-gen-go/testdata/extensions/proto3/ext3.pb.go
@@ -669,49 +669,49 @@
 	(*descriptorpb.MessageOptions)(nil), // 2: google.protobuf.MessageOptions
 }
 var file_extensions_proto3_ext3_proto_depIdxs = []int32{
-	2,  // goproto.protoc.extension.proto3.extension_bool:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_enum:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_int32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_sint32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_uint32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_int64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_sint64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_uint64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_sfixed32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_fixed32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_float:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_sfixed64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_fixed64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_double:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_string:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_bytes:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.extension_Message:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_bool:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_enum:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_int32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_sint32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_uint32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_int64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_sint64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_uint64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_sfixed32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_fixed32:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_float:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_sfixed64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_fixed64:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_double:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_string:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_bytes:extendee -> google.protobuf.MessageOptions
-	2,  // goproto.protoc.extension.proto3.repeated_extension_Message:extendee -> google.protobuf.MessageOptions
-	0,  // goproto.protoc.extension.proto3.extension_enum:type_name -> goproto.protoc.extension.proto3.Enum
-	1,  // goproto.protoc.extension.proto3.extension_Message:type_name -> goproto.protoc.extension.proto3.Message
-	0,  // goproto.protoc.extension.proto3.repeated_extension_enum:type_name -> goproto.protoc.extension.proto3.Enum
-	1,  // goproto.protoc.extension.proto3.repeated_extension_Message:type_name -> goproto.protoc.extension.proto3.Message
-	38, // starting offset of method output_type sub-list
-	38, // starting offset of method input_type sub-list
-	34, // starting offset of extension type_name sub-list
-	0,  // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	2,  // 0: goproto.protoc.extension.proto3.extension_bool:extendee -> google.protobuf.MessageOptions
+	2,  // 1: goproto.protoc.extension.proto3.extension_enum:extendee -> google.protobuf.MessageOptions
+	2,  // 2: goproto.protoc.extension.proto3.extension_int32:extendee -> google.protobuf.MessageOptions
+	2,  // 3: goproto.protoc.extension.proto3.extension_sint32:extendee -> google.protobuf.MessageOptions
+	2,  // 4: goproto.protoc.extension.proto3.extension_uint32:extendee -> google.protobuf.MessageOptions
+	2,  // 5: goproto.protoc.extension.proto3.extension_int64:extendee -> google.protobuf.MessageOptions
+	2,  // 6: goproto.protoc.extension.proto3.extension_sint64:extendee -> google.protobuf.MessageOptions
+	2,  // 7: goproto.protoc.extension.proto3.extension_uint64:extendee -> google.protobuf.MessageOptions
+	2,  // 8: goproto.protoc.extension.proto3.extension_sfixed32:extendee -> google.protobuf.MessageOptions
+	2,  // 9: goproto.protoc.extension.proto3.extension_fixed32:extendee -> google.protobuf.MessageOptions
+	2,  // 10: goproto.protoc.extension.proto3.extension_float:extendee -> google.protobuf.MessageOptions
+	2,  // 11: goproto.protoc.extension.proto3.extension_sfixed64:extendee -> google.protobuf.MessageOptions
+	2,  // 12: goproto.protoc.extension.proto3.extension_fixed64:extendee -> google.protobuf.MessageOptions
+	2,  // 13: goproto.protoc.extension.proto3.extension_double:extendee -> google.protobuf.MessageOptions
+	2,  // 14: goproto.protoc.extension.proto3.extension_string:extendee -> google.protobuf.MessageOptions
+	2,  // 15: goproto.protoc.extension.proto3.extension_bytes:extendee -> google.protobuf.MessageOptions
+	2,  // 16: goproto.protoc.extension.proto3.extension_Message:extendee -> google.protobuf.MessageOptions
+	2,  // 17: goproto.protoc.extension.proto3.repeated_extension_bool:extendee -> google.protobuf.MessageOptions
+	2,  // 18: goproto.protoc.extension.proto3.repeated_extension_enum:extendee -> google.protobuf.MessageOptions
+	2,  // 19: goproto.protoc.extension.proto3.repeated_extension_int32:extendee -> google.protobuf.MessageOptions
+	2,  // 20: goproto.protoc.extension.proto3.repeated_extension_sint32:extendee -> google.protobuf.MessageOptions
+	2,  // 21: goproto.protoc.extension.proto3.repeated_extension_uint32:extendee -> google.protobuf.MessageOptions
+	2,  // 22: goproto.protoc.extension.proto3.repeated_extension_int64:extendee -> google.protobuf.MessageOptions
+	2,  // 23: goproto.protoc.extension.proto3.repeated_extension_sint64:extendee -> google.protobuf.MessageOptions
+	2,  // 24: goproto.protoc.extension.proto3.repeated_extension_uint64:extendee -> google.protobuf.MessageOptions
+	2,  // 25: goproto.protoc.extension.proto3.repeated_extension_sfixed32:extendee -> google.protobuf.MessageOptions
+	2,  // 26: goproto.protoc.extension.proto3.repeated_extension_fixed32:extendee -> google.protobuf.MessageOptions
+	2,  // 27: goproto.protoc.extension.proto3.repeated_extension_float:extendee -> google.protobuf.MessageOptions
+	2,  // 28: goproto.protoc.extension.proto3.repeated_extension_sfixed64:extendee -> google.protobuf.MessageOptions
+	2,  // 29: goproto.protoc.extension.proto3.repeated_extension_fixed64:extendee -> google.protobuf.MessageOptions
+	2,  // 30: goproto.protoc.extension.proto3.repeated_extension_double:extendee -> google.protobuf.MessageOptions
+	2,  // 31: goproto.protoc.extension.proto3.repeated_extension_string:extendee -> google.protobuf.MessageOptions
+	2,  // 32: goproto.protoc.extension.proto3.repeated_extension_bytes:extendee -> google.protobuf.MessageOptions
+	2,  // 33: goproto.protoc.extension.proto3.repeated_extension_Message:extendee -> google.protobuf.MessageOptions
+	0,  // 34: goproto.protoc.extension.proto3.extension_enum:type_name -> goproto.protoc.extension.proto3.Enum
+	1,  // 35: goproto.protoc.extension.proto3.extension_Message:type_name -> goproto.protoc.extension.proto3.Message
+	0,  // 36: goproto.protoc.extension.proto3.repeated_extension_enum:type_name -> goproto.protoc.extension.proto3.Enum
+	1,  // 37: goproto.protoc.extension.proto3.repeated_extension_Message:type_name -> goproto.protoc.extension.proto3.Message
+	38, // [38:38] is the sub-list for method output_type
+	38, // [38:38] is the sub-list for method input_type
+	34, // [34:38] is the sub-list for extension type_name
+	0,  // [0:34] is the sub-list for extension extendee
+	0,  // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_extensions_proto3_ext3_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go b/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go
index 066f99a..af5e87f 100644
--- a/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go
+++ b/cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go
@@ -378,11 +378,11 @@
 	(*Message_OneofMessageConflict)(nil), // 1: goproto.protoc.fieldnames.Message.OneofMessageConflict
 }
 var file_fieldnames_fieldnames_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_fieldnames_fieldnames_proto_init() }
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 52b6972..66d07eb 100644
--- a/cmd/protoc-gen-go/testdata/import_public/a.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/a.pb.go
@@ -158,14 +158,14 @@
 	(*Local)(nil),  // 3: goproto.protoc.import_public.Local
 }
 var file_import_public_a_proto_depIdxs = []int32{
-	1, // goproto.protoc.import_public.Public.m:type_name -> goproto.protoc.import_public.sub.M
-	2, // goproto.protoc.import_public.Public.e:type_name -> goproto.protoc.import_public.sub.E
-	3, // goproto.protoc.import_public.Public.local:type_name -> goproto.protoc.import_public.Local
-	3, // starting offset of method output_type sub-list
-	3, // starting offset of method input_type sub-list
-	3, // starting offset of extension type_name sub-list
-	3, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: goproto.protoc.import_public.Public.m:type_name -> goproto.protoc.import_public.sub.M
+	2, // 1: goproto.protoc.import_public.Public.e:type_name -> goproto.protoc.import_public.sub.E
+	3, // 2: goproto.protoc.import_public.Public.local:type_name -> goproto.protoc.import_public.Local
+	3, // [3:3] is the sub-list for method output_type
+	3, // [3:3] is the sub-list for method input_type
+	3, // [3:3] is the sub-list for extension type_name
+	3, // [3:3] is the sub-list for extension extendee
+	0, // [0:3] is the sub-list for field type_name
 }
 
 func init() { file_import_public_a_proto_init() }
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 bb8a260..4eb052e 100644
--- a/cmd/protoc-gen-go/testdata/import_public/b.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/b.pb.go
@@ -106,13 +106,13 @@
 	(sub.E)(0),    // 2: goproto.protoc.import_public.sub.E
 }
 var file_import_public_b_proto_depIdxs = []int32{
-	1, // goproto.protoc.import_public.Local.m:type_name -> goproto.protoc.import_public.sub.M
-	2, // goproto.protoc.import_public.Local.e:type_name -> goproto.protoc.import_public.sub.E
-	2, // starting offset of method output_type sub-list
-	2, // starting offset of method input_type sub-list
-	2, // starting offset of extension type_name sub-list
-	2, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: goproto.protoc.import_public.Local.m:type_name -> goproto.protoc.import_public.sub.M
+	2, // 1: goproto.protoc.import_public.Local.e:type_name -> goproto.protoc.import_public.sub.E
+	2, // [2:2] is the sub-list for method output_type
+	2, // [2:2] is the sub-list for method input_type
+	2, // [2:2] is the sub-list for extension type_name
+	2, // [2:2] is the sub-list for extension extendee
+	0, // [0:2] is the sub-list for field type_name
 }
 
 func init() { file_import_public_b_proto_init() }
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 bfac017..64e3087 100644
--- a/cmd/protoc-gen-go/testdata/import_public/c.pb.go
+++ b/cmd/protoc-gen-go/testdata/import_public/c.pb.go
@@ -111,13 +111,13 @@
 	(*sub2.Sub2Message)(nil),  // 2: goproto.protoc.import_public.sub2.Sub2Message
 }
 var file_import_public_c_proto_depIdxs = []int32{
-	1, // goproto.protoc.import_public.UsingPublicImport.local:type_name -> goproto.protoc.import_public.Local
-	2, // goproto.protoc.import_public.UsingPublicImport.sub2:type_name -> goproto.protoc.import_public.sub2.Sub2Message
-	2, // starting offset of method output_type sub-list
-	2, // starting offset of method input_type sub-list
-	2, // starting offset of extension type_name sub-list
-	2, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: goproto.protoc.import_public.UsingPublicImport.local:type_name -> goproto.protoc.import_public.Local
+	2, // 1: goproto.protoc.import_public.UsingPublicImport.sub2:type_name -> goproto.protoc.import_public.sub2.Sub2Message
+	2, // [2:2] is the sub-list for method output_type
+	2, // [2:2] is the sub-list for method input_type
+	2, // [2:2] is the sub-list for extension type_name
+	2, // [2:2] is the sub-list for extension extendee
+	0, // [0:2] is the sub-list for field type_name
 }
 
 func init() { file_import_public_c_proto_init() }
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 bf1aa64..dd85474 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
@@ -475,13 +475,13 @@
 	(*M2)(nil),                           // 5: goproto.protoc.import_public.sub.M2
 }
 var file_import_public_sub_a_proto_depIdxs = []int32{
-	5, // goproto.protoc.import_public.sub.M.m2:type_name -> goproto.protoc.import_public.sub.M2
-	3, // goproto.protoc.import_public.sub.extension_field:extendee -> goproto.protoc.import_public.sub.M
-	2, // starting offset of method output_type sub-list
-	2, // starting offset of method input_type sub-list
-	2, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	5, // 0: goproto.protoc.import_public.sub.M.m2:type_name -> goproto.protoc.import_public.sub.M2
+	3, // 1: goproto.protoc.import_public.sub.extension_field:extendee -> goproto.protoc.import_public.sub.M
+	2, // [2:2] is the sub-list for method output_type
+	2, // [2:2] is the sub-list for method input_type
+	2, // [2:2] is the sub-list for extension type_name
+	1, // [1:2] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_import_public_sub_a_proto_init() }
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 d94b0b6..529378b 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
@@ -78,11 +78,11 @@
 	(*M2)(nil), // 0: goproto.protoc.import_public.sub.M2
 }
 var file_import_public_sub_b_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_import_public_sub_b_proto_init() }
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 03ebff4..5dadbda 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
@@ -79,11 +79,11 @@
 	(*Sub2Message)(nil), // 0: goproto.protoc.import_public.sub2.Sub2Message
 }
 var file_import_public_sub2_a_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_import_public_sub2_a_proto_init() }
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 570622b..3532869 100644
--- a/cmd/protoc-gen-go/testdata/imports/fmt/m.pb.go
+++ b/cmd/protoc-gen-go/testdata/imports/fmt/m.pb.go
@@ -76,11 +76,11 @@
 	(*M)(nil), // 0: fmt.M
 }
 var file_imports_fmt_m_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_imports_fmt_m_proto_init() }
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 a5fc0b3..f277bb0 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
@@ -169,12 +169,12 @@
 	(*M1_1)(nil), // 2: test.a.M1_1
 }
 var file_imports_test_a_1_m1_proto_depIdxs = []int32{
-	1, // test.a.M1_1.m1:type_name -> test.a.M1
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: test.a.M1_1.m1:type_name -> test.a.M1
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_a_1_m1_proto_init() }
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 3cbdd5b..f60fb18 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
@@ -77,11 +77,11 @@
 	(*M2)(nil), // 0: test.a.M2
 }
 var file_imports_test_a_1_m2_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_a_1_m2_proto_init() }
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 19d2fed..0fc62de 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
@@ -77,11 +77,11 @@
 	(*M3)(nil), // 0: test.a.M3
 }
 var file_imports_test_a_2_m3_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_a_2_m3_proto_init() }
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 0dc3610..17e06ab 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
@@ -77,11 +77,11 @@
 	(*M4)(nil), // 0: test.a.M4
 }
 var file_imports_test_a_2_m4_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_a_2_m4_proto_init() }
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 ea515d0..36898b7 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
@@ -78,11 +78,11 @@
 	(*M1)(nil), // 0: test.b.part1.M1
 }
 var file_imports_test_b_1_m1_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_b_1_m1_proto_init() }
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 36cc242..a2bc2cb 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
@@ -78,11 +78,11 @@
 	(*M2)(nil), // 0: test.b.part2.M2
 }
 var file_imports_test_b_1_m2_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_b_1_m2_proto_init() }
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 7e63f68..825a26e 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
@@ -91,12 +91,12 @@
 	(*test_a_1.M1)(nil), // 1: test.a.M1
 }
 var file_imports_test_import_a1m1_proto_depIdxs = []int32{
-	1, // test.A1M1.f:type_name -> test.a.M1
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: test.A1M1.f:type_name -> test.a.M1
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_import_a1m1_proto_init() }
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 8abfcd5..d1110cf 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
@@ -91,12 +91,12 @@
 	(*test_a_1.M2)(nil), // 1: test.a.M2
 }
 var file_imports_test_import_a1m2_proto_depIdxs = []int32{
-	1, // test.A1M2.f:type_name -> test.a.M2
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: test.A1M2.f:type_name -> test.a.M2
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_import_a1m2_proto_init() }
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 57433ed..2d24461 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
@@ -148,16 +148,16 @@
 	(*fmt.M)(nil),       // 5: fmt.M
 }
 var file_imports_test_import_all_proto_depIdxs = []int32{
-	1, // test.All.am1:type_name -> test.a.M1
-	2, // test.All.am2:type_name -> test.a.M2
-	3, // test.All.bm1:type_name -> test.b.part1.M1
-	4, // test.All.bm2:type_name -> test.b.part2.M2
-	5, // test.All.fmt:type_name -> fmt.M
-	5, // starting offset of method output_type sub-list
-	5, // starting offset of method input_type sub-list
-	5, // starting offset of extension type_name sub-list
-	5, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: test.All.am1:type_name -> test.a.M1
+	2, // 1: test.All.am2:type_name -> test.a.M2
+	3, // 2: test.All.bm1:type_name -> test.b.part1.M1
+	4, // 3: test.All.bm2:type_name -> test.b.part2.M2
+	5, // 4: test.All.fmt:type_name -> fmt.M
+	5, // [5:5] is the sub-list for method output_type
+	5, // [5:5] is the sub-list for method input_type
+	5, // [5:5] is the sub-list for extension type_name
+	5, // [5:5] is the sub-list for extension extendee
+	0, // [0:5] is the sub-list for field type_name
 }
 
 func init() { file_imports_test_import_all_proto_init() }
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 0f9f962..39e64b4 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,11 +99,11 @@
 	(*Foo)(nil), // 0: oneoftest.Foo
 }
 var file_issue780_oneof_conflict_test_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_issue780_oneof_conflict_test_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go b/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go
index 2d2d91a..b9adbb6 100644
--- a/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go
+++ b/cmd/protoc-gen-go/testdata/nopackage/nopackage.pb.go
@@ -155,12 +155,12 @@
 	(*Message)(nil), // 1: Message
 }
 var file_nopackage_nopackage_proto_depIdxs = []int32{
-	0, // Message.enum_field:type_name -> Enum
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // 0: Message.enum_field:type_name -> Enum
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_nopackage_nopackage_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/proto2/enum.pb.go b/cmd/protoc-gen-go/testdata/proto2/enum.pb.go
index 6a48fae..9d27ede 100644
--- a/cmd/protoc-gen-go/testdata/proto2/enum.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/enum.pb.go
@@ -503,13 +503,13 @@
 	(*EnumContainerMessage1_EnumContainerMessage2)(nil),               // 7: goproto.protoc.proto2.EnumContainerMessage1.EnumContainerMessage2
 }
 var file_proto2_enum_proto_depIdxs = []int32{
-	1, // goproto.protoc.proto2.EnumContainerMessage1.default_duplicate1:type_name -> goproto.protoc.proto2.EnumType2
-	1, // goproto.protoc.proto2.EnumContainerMessage1.default_duplicate2:type_name -> goproto.protoc.proto2.EnumType2
-	2, // starting offset of method output_type sub-list
-	2, // starting offset of method input_type sub-list
-	2, // starting offset of extension type_name sub-list
-	2, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: goproto.protoc.proto2.EnumContainerMessage1.default_duplicate1:type_name -> goproto.protoc.proto2.EnumType2
+	1, // 1: goproto.protoc.proto2.EnumContainerMessage1.default_duplicate2:type_name -> goproto.protoc.proto2.EnumType2
+	2, // [2:2] is the sub-list for method output_type
+	2, // [2:2] is the sub-list for method input_type
+	2, // [2:2] is the sub-list for extension type_name
+	2, // [2:2] is the sub-list for extension extendee
+	0, // [0:2] is the sub-list for field type_name
 }
 
 func init() { file_proto2_enum_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/proto2/fields.pb.go b/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
index d8b576b..b2ee899 100644
--- a/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
@@ -1708,29 +1708,29 @@
 	(*FieldTestMessage_Message)(nil),       // 9: goproto.protoc.proto2.FieldTestMessage.Message
 }
 var file_proto2_fields_proto_depIdxs = []int32{
-	0,  // goproto.protoc.proto2.FieldTestMessage.optional_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
-	9,  // goproto.protoc.proto2.FieldTestMessage.optional_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
-	2,  // goproto.protoc.proto2.FieldTestMessage.optionalgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.OptionalGroup
-	0,  // goproto.protoc.proto2.FieldTestMessage.required_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
-	9,  // goproto.protoc.proto2.FieldTestMessage.required_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
-	3,  // goproto.protoc.proto2.FieldTestMessage.requiredgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.RequiredGroup
-	0,  // goproto.protoc.proto2.FieldTestMessage.repeated_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
-	9,  // goproto.protoc.proto2.FieldTestMessage.repeated_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
-	4,  // goproto.protoc.proto2.FieldTestMessage.repeatedgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.RepeatedGroup
-	0,  // goproto.protoc.proto2.FieldTestMessage.default_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
-	5,  // goproto.protoc.proto2.FieldTestMessage.map_int32_int64:type_name -> goproto.protoc.proto2.FieldTestMessage.MapInt32Int64Entry
-	6,  // goproto.protoc.proto2.FieldTestMessage.map_string_message:type_name -> goproto.protoc.proto2.FieldTestMessage.MapStringMessageEntry
-	7,  // goproto.protoc.proto2.FieldTestMessage.map_fixed64_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.MapFixed64EnumEntry
-	0,  // goproto.protoc.proto2.FieldTestMessage.oneof_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
-	9,  // goproto.protoc.proto2.FieldTestMessage.oneof_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
-	8,  // goproto.protoc.proto2.FieldTestMessage.oneofgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.OneofGroup
-	9,  // goproto.protoc.proto2.FieldTestMessage.MapStringMessageEntry.value:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
-	0,  // goproto.protoc.proto2.FieldTestMessage.MapFixed64EnumEntry.value:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
-	18, // starting offset of method output_type sub-list
-	18, // starting offset of method input_type sub-list
-	18, // starting offset of extension type_name sub-list
-	18, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	0,  // 0: goproto.protoc.proto2.FieldTestMessage.optional_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
+	9,  // 1: goproto.protoc.proto2.FieldTestMessage.optional_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
+	2,  // 2: goproto.protoc.proto2.FieldTestMessage.optionalgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.OptionalGroup
+	0,  // 3: goproto.protoc.proto2.FieldTestMessage.required_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
+	9,  // 4: goproto.protoc.proto2.FieldTestMessage.required_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
+	3,  // 5: goproto.protoc.proto2.FieldTestMessage.requiredgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.RequiredGroup
+	0,  // 6: goproto.protoc.proto2.FieldTestMessage.repeated_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
+	9,  // 7: goproto.protoc.proto2.FieldTestMessage.repeated_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
+	4,  // 8: goproto.protoc.proto2.FieldTestMessage.repeatedgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.RepeatedGroup
+	0,  // 9: goproto.protoc.proto2.FieldTestMessage.default_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
+	5,  // 10: goproto.protoc.proto2.FieldTestMessage.map_int32_int64:type_name -> goproto.protoc.proto2.FieldTestMessage.MapInt32Int64Entry
+	6,  // 11: goproto.protoc.proto2.FieldTestMessage.map_string_message:type_name -> goproto.protoc.proto2.FieldTestMessage.MapStringMessageEntry
+	7,  // 12: goproto.protoc.proto2.FieldTestMessage.map_fixed64_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.MapFixed64EnumEntry
+	0,  // 13: goproto.protoc.proto2.FieldTestMessage.oneof_enum:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
+	9,  // 14: goproto.protoc.proto2.FieldTestMessage.oneof_Message:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
+	8,  // 15: goproto.protoc.proto2.FieldTestMessage.oneofgroup:type_name -> goproto.protoc.proto2.FieldTestMessage.OneofGroup
+	9,  // 16: goproto.protoc.proto2.FieldTestMessage.MapStringMessageEntry.value:type_name -> goproto.protoc.proto2.FieldTestMessage.Message
+	0,  // 17: goproto.protoc.proto2.FieldTestMessage.MapFixed64EnumEntry.value:type_name -> goproto.protoc.proto2.FieldTestMessage.Enum
+	18, // [18:18] is the sub-list for method output_type
+	18, // [18:18] is the sub-list for method input_type
+	18, // [18:18] is the sub-list for extension type_name
+	18, // [18:18] is the sub-list for extension extendee
+	0,  // [0:18] is the sub-list for field type_name
 }
 
 func init() { file_proto2_fields_proto_init() }
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 db41504..77a1e55 100644
--- a/cmd/protoc-gen-go/testdata/proto2/nested_messages.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/nested_messages.pb.go
@@ -184,14 +184,14 @@
 	(*Layer1_Layer2_Layer3)(nil), // 2: goproto.protoc.proto2.Layer1.Layer2.Layer3
 }
 var file_proto2_nested_messages_proto_depIdxs = []int32{
-	1, // goproto.protoc.proto2.Layer1.l2:type_name -> goproto.protoc.proto2.Layer1.Layer2
-	2, // goproto.protoc.proto2.Layer1.l3:type_name -> goproto.protoc.proto2.Layer1.Layer2.Layer3
-	2, // goproto.protoc.proto2.Layer1.Layer2.l3:type_name -> goproto.protoc.proto2.Layer1.Layer2.Layer3
-	3, // starting offset of method output_type sub-list
-	3, // starting offset of method input_type sub-list
-	3, // starting offset of extension type_name sub-list
-	3, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: goproto.protoc.proto2.Layer1.l2:type_name -> goproto.protoc.proto2.Layer1.Layer2
+	2, // 1: goproto.protoc.proto2.Layer1.l3:type_name -> goproto.protoc.proto2.Layer1.Layer2.Layer3
+	2, // 2: goproto.protoc.proto2.Layer1.Layer2.l3:type_name -> goproto.protoc.proto2.Layer1.Layer2.Layer3
+	3, // [3:3] is the sub-list for method output_type
+	3, // [3:3] is the sub-list for method input_type
+	3, // [3:3] is the sub-list for extension type_name
+	3, // [3:3] is the sub-list for extension extendee
+	0, // [0:3] is the sub-list for field type_name
 }
 
 func init() { file_proto2_nested_messages_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go b/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go
index 20b06f1..571ac38 100644
--- a/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/proto2.pb.go
@@ -98,12 +98,12 @@
 	(*Message)(nil), // 0: goproto.protoc.proto2.Message
 }
 var file_proto2_proto2_proto_depIdxs = []int32{
-	0, // goproto.protoc.proto2.Message.m:type_name -> goproto.protoc.proto2.Message
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // 0: goproto.protoc.proto2.Message.m:type_name -> goproto.protoc.proto2.Message
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_proto2_proto2_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/proto3/enum.pb.go b/cmd/protoc-gen-go/testdata/proto3/enum.pb.go
index 203815a..0da57e8 100644
--- a/cmd/protoc-gen-go/testdata/proto3/enum.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto3/enum.pb.go
@@ -95,11 +95,11 @@
 	(Enum)(0), // 0: goproto.protoc.proto3.Enum
 }
 var file_proto3_enum_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_proto3_enum_proto_init() }
diff --git a/cmd/protoc-gen-go/testdata/proto3/fields.pb.go b/cmd/protoc-gen-go/testdata/proto3/fields.pb.go
index 5f9d77e..08485ad 100644
--- a/cmd/protoc-gen-go/testdata/proto3/fields.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto3/fields.pb.go
@@ -597,20 +597,20 @@
 	(*FieldTestMessage_Message)(nil), // 5: goproto.protoc.proto3.FieldTestMessage.Message
 }
 var file_proto3_fields_proto_depIdxs = []int32{
-	0, // goproto.protoc.proto3.FieldTestMessage.optional_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum
-	5, // goproto.protoc.proto3.FieldTestMessage.optional_Message:type_name -> goproto.protoc.proto3.FieldTestMessage.Message
-	0, // goproto.protoc.proto3.FieldTestMessage.repeated_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum
-	5, // goproto.protoc.proto3.FieldTestMessage.repeated_Message:type_name -> goproto.protoc.proto3.FieldTestMessage.Message
-	2, // goproto.protoc.proto3.FieldTestMessage.map_int32_int64:type_name -> goproto.protoc.proto3.FieldTestMessage.MapInt32Int64Entry
-	3, // goproto.protoc.proto3.FieldTestMessage.map_string_message:type_name -> goproto.protoc.proto3.FieldTestMessage.MapStringMessageEntry
-	4, // goproto.protoc.proto3.FieldTestMessage.map_fixed64_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.MapFixed64EnumEntry
-	5, // goproto.protoc.proto3.FieldTestMessage.MapStringMessageEntry.value:type_name -> goproto.protoc.proto3.FieldTestMessage.Message
-	0, // goproto.protoc.proto3.FieldTestMessage.MapFixed64EnumEntry.value:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum
-	9, // starting offset of method output_type sub-list
-	9, // starting offset of method input_type sub-list
-	9, // starting offset of extension type_name sub-list
-	9, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // 0: goproto.protoc.proto3.FieldTestMessage.optional_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum
+	5, // 1: goproto.protoc.proto3.FieldTestMessage.optional_Message:type_name -> goproto.protoc.proto3.FieldTestMessage.Message
+	0, // 2: goproto.protoc.proto3.FieldTestMessage.repeated_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum
+	5, // 3: goproto.protoc.proto3.FieldTestMessage.repeated_Message:type_name -> goproto.protoc.proto3.FieldTestMessage.Message
+	2, // 4: goproto.protoc.proto3.FieldTestMessage.map_int32_int64:type_name -> goproto.protoc.proto3.FieldTestMessage.MapInt32Int64Entry
+	3, // 5: goproto.protoc.proto3.FieldTestMessage.map_string_message:type_name -> goproto.protoc.proto3.FieldTestMessage.MapStringMessageEntry
+	4, // 6: goproto.protoc.proto3.FieldTestMessage.map_fixed64_enum:type_name -> goproto.protoc.proto3.FieldTestMessage.MapFixed64EnumEntry
+	5, // 7: goproto.protoc.proto3.FieldTestMessage.MapStringMessageEntry.value:type_name -> goproto.protoc.proto3.FieldTestMessage.Message
+	0, // 8: goproto.protoc.proto3.FieldTestMessage.MapFixed64EnumEntry.value:type_name -> goproto.protoc.proto3.FieldTestMessage.Enum
+	9, // [9:9] is the sub-list for method output_type
+	9, // [9:9] is the sub-list for method input_type
+	9, // [9:9] is the sub-list for extension type_name
+	9, // [9:9] is the sub-list for extension extendee
+	0, // [0:9] is the sub-list for field type_name
 }
 
 func init() { file_proto3_fields_proto_init() }
diff --git a/encoding/testprotos/pb2/test.pb.go b/encoding/testprotos/pb2/test.pb.go
index 61630d6..1925bc4 100644
--- a/encoding/testprotos/pb2/test.pb.go
+++ b/encoding/testprotos/pb2/test.pb.go
@@ -2069,83 +2069,83 @@
 	(*fieldmaskpb.FieldMask)(nil),         // 39: google.protobuf.FieldMask
 }
 var file_pb2_test_proto_depIdxs = []int32{
-	0,  // pb2.Enums.opt_enum:type_name -> pb2.Enum
-	0,  // pb2.Enums.rpt_enum:type_name -> pb2.Enum
-	1,  // pb2.Enums.opt_nested_enum:type_name -> pb2.Enums.NestedEnum
-	1,  // pb2.Enums.rpt_nested_enum:type_name -> pb2.Enums.NestedEnum
-	5,  // pb2.Nested.opt_nested:type_name -> pb2.Nested
-	5,  // pb2.Nests.opt_nested:type_name -> pb2.Nested
-	18, // pb2.Nests.optgroup:type_name -> pb2.Nests.OptGroup
-	5,  // pb2.Nests.rpt_nested:type_name -> pb2.Nested
-	19, // pb2.Nests.rptgroup:type_name -> pb2.Nests.RptGroup
-	0,  // pb2.Requireds.req_enum:type_name -> pb2.Enum
-	5,  // pb2.Requireds.req_nested:type_name -> pb2.Nested
-	9,  // pb2.IndirectRequired.opt_nested:type_name -> pb2.NestedWithRequired
-	9,  // pb2.IndirectRequired.rpt_nested:type_name -> pb2.NestedWithRequired
-	21, // pb2.IndirectRequired.str_to_nested:type_name -> pb2.IndirectRequired.StrToNestedEntry
-	9,  // pb2.IndirectRequired.oneof_nested:type_name -> pb2.NestedWithRequired
-	22, // pb2.KnownTypes.opt_bool:type_name -> google.protobuf.BoolValue
-	23, // pb2.KnownTypes.opt_int32:type_name -> google.protobuf.Int32Value
-	24, // pb2.KnownTypes.opt_int64:type_name -> google.protobuf.Int64Value
-	25, // pb2.KnownTypes.opt_uint32:type_name -> google.protobuf.UInt32Value
-	26, // pb2.KnownTypes.opt_uint64:type_name -> google.protobuf.UInt64Value
-	27, // pb2.KnownTypes.opt_float:type_name -> google.protobuf.FloatValue
-	28, // pb2.KnownTypes.opt_double:type_name -> google.protobuf.DoubleValue
-	29, // pb2.KnownTypes.opt_string:type_name -> google.protobuf.StringValue
-	30, // pb2.KnownTypes.opt_bytes:type_name -> google.protobuf.BytesValue
-	31, // pb2.KnownTypes.opt_duration:type_name -> google.protobuf.Duration
-	32, // pb2.KnownTypes.opt_timestamp:type_name -> google.protobuf.Timestamp
-	33, // pb2.KnownTypes.opt_struct:type_name -> google.protobuf.Struct
-	34, // pb2.KnownTypes.opt_list:type_name -> google.protobuf.ListValue
-	35, // pb2.KnownTypes.opt_value:type_name -> google.protobuf.Value
-	36, // pb2.KnownTypes.opt_null:type_name -> google.protobuf.NullValue
-	37, // pb2.KnownTypes.opt_empty:type_name -> google.protobuf.Empty
-	38, // pb2.KnownTypes.opt_any:type_name -> google.protobuf.Any
-	39, // pb2.KnownTypes.opt_fieldmask:type_name -> google.protobuf.FieldMask
-	5,  // pb2.Nests.OptGroup.opt_nested:type_name -> pb2.Nested
-	20, // pb2.Nests.OptGroup.optnestedgroup:type_name -> pb2.Nests.OptGroup.OptNestedGroup
-	9,  // pb2.IndirectRequired.StrToNestedEntry.value:type_name -> pb2.NestedWithRequired
-	11, // pb2.opt_ext_bool:extendee -> pb2.Extensions
-	11, // pb2.opt_ext_string:extendee -> pb2.Extensions
-	11, // pb2.opt_ext_enum:extendee -> pb2.Extensions
-	11, // pb2.opt_ext_nested:extendee -> pb2.Extensions
-	11, // pb2.opt_ext_partial:extendee -> pb2.Extensions
-	11, // pb2.rpt_ext_fixed32:extendee -> pb2.Extensions
-	11, // pb2.rpt_ext_enum:extendee -> pb2.Extensions
-	11, // pb2.rpt_ext_nested:extendee -> pb2.Extensions
-	13, // pb2.message_set_extension:extendee -> pb2.MessageSet
-	11, // pb2.ExtensionsContainer.opt_ext_bool:extendee -> pb2.Extensions
-	11, // pb2.ExtensionsContainer.opt_ext_string:extendee -> pb2.Extensions
-	11, // pb2.ExtensionsContainer.opt_ext_enum:extendee -> pb2.Extensions
-	11, // pb2.ExtensionsContainer.opt_ext_nested:extendee -> pb2.Extensions
-	11, // pb2.ExtensionsContainer.opt_ext_partial:extendee -> pb2.Extensions
-	11, // pb2.ExtensionsContainer.rpt_ext_string:extendee -> pb2.Extensions
-	11, // pb2.ExtensionsContainer.rpt_ext_enum:extendee -> pb2.Extensions
-	11, // pb2.ExtensionsContainer.rpt_ext_nested:extendee -> pb2.Extensions
-	13, // pb2.MessageSetExtension.message_set_extension:extendee -> pb2.MessageSet
-	13, // pb2.MessageSetExtension.not_message_set_extension:extendee -> pb2.MessageSet
-	13, // pb2.MessageSetExtension.ext_nested:extendee -> pb2.MessageSet
-	15, // pb2.FakeMessageSetExtension.message_set_extension:extendee -> pb2.FakeMessageSet
-	0,  // pb2.opt_ext_enum:type_name -> pb2.Enum
-	5,  // pb2.opt_ext_nested:type_name -> pb2.Nested
-	8,  // pb2.opt_ext_partial:type_name -> pb2.PartialRequired
-	0,  // pb2.rpt_ext_enum:type_name -> pb2.Enum
-	5,  // pb2.rpt_ext_nested:type_name -> pb2.Nested
-	16, // pb2.message_set_extension:type_name -> pb2.FakeMessageSetExtension
-	0,  // pb2.ExtensionsContainer.opt_ext_enum:type_name -> pb2.Enum
-	5,  // pb2.ExtensionsContainer.opt_ext_nested:type_name -> pb2.Nested
-	8,  // pb2.ExtensionsContainer.opt_ext_partial:type_name -> pb2.PartialRequired
-	0,  // pb2.ExtensionsContainer.rpt_ext_enum:type_name -> pb2.Enum
-	5,  // pb2.ExtensionsContainer.rpt_ext_nested:type_name -> pb2.Nested
-	14, // pb2.MessageSetExtension.message_set_extension:type_name -> pb2.MessageSetExtension
-	14, // pb2.MessageSetExtension.not_message_set_extension:type_name -> pb2.MessageSetExtension
-	5,  // pb2.MessageSetExtension.ext_nested:type_name -> pb2.Nested
-	16, // pb2.FakeMessageSetExtension.message_set_extension:type_name -> pb2.FakeMessageSetExtension
-	72, // starting offset of method output_type sub-list
-	72, // starting offset of method input_type sub-list
-	57, // starting offset of extension type_name sub-list
-	36, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	0,  // 0: pb2.Enums.opt_enum:type_name -> pb2.Enum
+	0,  // 1: pb2.Enums.rpt_enum:type_name -> pb2.Enum
+	1,  // 2: pb2.Enums.opt_nested_enum:type_name -> pb2.Enums.NestedEnum
+	1,  // 3: pb2.Enums.rpt_nested_enum:type_name -> pb2.Enums.NestedEnum
+	5,  // 4: pb2.Nested.opt_nested:type_name -> pb2.Nested
+	5,  // 5: pb2.Nests.opt_nested:type_name -> pb2.Nested
+	18, // 6: pb2.Nests.optgroup:type_name -> pb2.Nests.OptGroup
+	5,  // 7: pb2.Nests.rpt_nested:type_name -> pb2.Nested
+	19, // 8: pb2.Nests.rptgroup:type_name -> pb2.Nests.RptGroup
+	0,  // 9: pb2.Requireds.req_enum:type_name -> pb2.Enum
+	5,  // 10: pb2.Requireds.req_nested:type_name -> pb2.Nested
+	9,  // 11: pb2.IndirectRequired.opt_nested:type_name -> pb2.NestedWithRequired
+	9,  // 12: pb2.IndirectRequired.rpt_nested:type_name -> pb2.NestedWithRequired
+	21, // 13: pb2.IndirectRequired.str_to_nested:type_name -> pb2.IndirectRequired.StrToNestedEntry
+	9,  // 14: pb2.IndirectRequired.oneof_nested:type_name -> pb2.NestedWithRequired
+	22, // 15: pb2.KnownTypes.opt_bool:type_name -> google.protobuf.BoolValue
+	23, // 16: pb2.KnownTypes.opt_int32:type_name -> google.protobuf.Int32Value
+	24, // 17: pb2.KnownTypes.opt_int64:type_name -> google.protobuf.Int64Value
+	25, // 18: pb2.KnownTypes.opt_uint32:type_name -> google.protobuf.UInt32Value
+	26, // 19: pb2.KnownTypes.opt_uint64:type_name -> google.protobuf.UInt64Value
+	27, // 20: pb2.KnownTypes.opt_float:type_name -> google.protobuf.FloatValue
+	28, // 21: pb2.KnownTypes.opt_double:type_name -> google.protobuf.DoubleValue
+	29, // 22: pb2.KnownTypes.opt_string:type_name -> google.protobuf.StringValue
+	30, // 23: pb2.KnownTypes.opt_bytes:type_name -> google.protobuf.BytesValue
+	31, // 24: pb2.KnownTypes.opt_duration:type_name -> google.protobuf.Duration
+	32, // 25: pb2.KnownTypes.opt_timestamp:type_name -> google.protobuf.Timestamp
+	33, // 26: pb2.KnownTypes.opt_struct:type_name -> google.protobuf.Struct
+	34, // 27: pb2.KnownTypes.opt_list:type_name -> google.protobuf.ListValue
+	35, // 28: pb2.KnownTypes.opt_value:type_name -> google.protobuf.Value
+	36, // 29: pb2.KnownTypes.opt_null:type_name -> google.protobuf.NullValue
+	37, // 30: pb2.KnownTypes.opt_empty:type_name -> google.protobuf.Empty
+	38, // 31: pb2.KnownTypes.opt_any:type_name -> google.protobuf.Any
+	39, // 32: pb2.KnownTypes.opt_fieldmask:type_name -> google.protobuf.FieldMask
+	5,  // 33: pb2.Nests.OptGroup.opt_nested:type_name -> pb2.Nested
+	20, // 34: pb2.Nests.OptGroup.optnestedgroup:type_name -> pb2.Nests.OptGroup.OptNestedGroup
+	9,  // 35: pb2.IndirectRequired.StrToNestedEntry.value:type_name -> pb2.NestedWithRequired
+	11, // 36: pb2.opt_ext_bool:extendee -> pb2.Extensions
+	11, // 37: pb2.opt_ext_string:extendee -> pb2.Extensions
+	11, // 38: pb2.opt_ext_enum:extendee -> pb2.Extensions
+	11, // 39: pb2.opt_ext_nested:extendee -> pb2.Extensions
+	11, // 40: pb2.opt_ext_partial:extendee -> pb2.Extensions
+	11, // 41: pb2.rpt_ext_fixed32:extendee -> pb2.Extensions
+	11, // 42: pb2.rpt_ext_enum:extendee -> pb2.Extensions
+	11, // 43: pb2.rpt_ext_nested:extendee -> pb2.Extensions
+	13, // 44: pb2.message_set_extension:extendee -> pb2.MessageSet
+	11, // 45: pb2.ExtensionsContainer.opt_ext_bool:extendee -> pb2.Extensions
+	11, // 46: pb2.ExtensionsContainer.opt_ext_string:extendee -> pb2.Extensions
+	11, // 47: pb2.ExtensionsContainer.opt_ext_enum:extendee -> pb2.Extensions
+	11, // 48: pb2.ExtensionsContainer.opt_ext_nested:extendee -> pb2.Extensions
+	11, // 49: pb2.ExtensionsContainer.opt_ext_partial:extendee -> pb2.Extensions
+	11, // 50: pb2.ExtensionsContainer.rpt_ext_string:extendee -> pb2.Extensions
+	11, // 51: pb2.ExtensionsContainer.rpt_ext_enum:extendee -> pb2.Extensions
+	11, // 52: pb2.ExtensionsContainer.rpt_ext_nested:extendee -> pb2.Extensions
+	13, // 53: pb2.MessageSetExtension.message_set_extension:extendee -> pb2.MessageSet
+	13, // 54: pb2.MessageSetExtension.not_message_set_extension:extendee -> pb2.MessageSet
+	13, // 55: pb2.MessageSetExtension.ext_nested:extendee -> pb2.MessageSet
+	15, // 56: pb2.FakeMessageSetExtension.message_set_extension:extendee -> pb2.FakeMessageSet
+	0,  // 57: pb2.opt_ext_enum:type_name -> pb2.Enum
+	5,  // 58: pb2.opt_ext_nested:type_name -> pb2.Nested
+	8,  // 59: pb2.opt_ext_partial:type_name -> pb2.PartialRequired
+	0,  // 60: pb2.rpt_ext_enum:type_name -> pb2.Enum
+	5,  // 61: pb2.rpt_ext_nested:type_name -> pb2.Nested
+	16, // 62: pb2.message_set_extension:type_name -> pb2.FakeMessageSetExtension
+	0,  // 63: pb2.ExtensionsContainer.opt_ext_enum:type_name -> pb2.Enum
+	5,  // 64: pb2.ExtensionsContainer.opt_ext_nested:type_name -> pb2.Nested
+	8,  // 65: pb2.ExtensionsContainer.opt_ext_partial:type_name -> pb2.PartialRequired
+	0,  // 66: pb2.ExtensionsContainer.rpt_ext_enum:type_name -> pb2.Enum
+	5,  // 67: pb2.ExtensionsContainer.rpt_ext_nested:type_name -> pb2.Nested
+	14, // 68: pb2.MessageSetExtension.message_set_extension:type_name -> pb2.MessageSetExtension
+	14, // 69: pb2.MessageSetExtension.not_message_set_extension:type_name -> pb2.MessageSetExtension
+	5,  // 70: pb2.MessageSetExtension.ext_nested:type_name -> pb2.Nested
+	16, // 71: pb2.FakeMessageSetExtension.message_set_extension:type_name -> pb2.FakeMessageSetExtension
+	72, // [72:72] is the sub-list for method output_type
+	72, // [72:72] is the sub-list for method input_type
+	57, // [57:72] is the sub-list for extension type_name
+	36, // [36:57] is the sub-list for extension extendee
+	0,  // [0:36] is the sub-list for field type_name
 }
 
 func init() { file_pb2_test_proto_init() }
diff --git a/encoding/testprotos/pb3/test.pb.go b/encoding/testprotos/pb3/test.pb.go
index 1515de9..3bff060 100644
--- a/encoding/testprotos/pb3/test.pb.go
+++ b/encoding/testprotos/pb3/test.pb.go
@@ -771,25 +771,25 @@
 	nil,                   // 13: pb3.Maps.StrToOneofsEntry
 }
 var file_pb3_test_proto_depIdxs = []int32{
-	0,  // pb3.Enums.s_enum:type_name -> pb3.Enum
-	1,  // pb3.Enums.s_nested_enum:type_name -> pb3.Enums.NestedEnum
-	5,  // pb3.Nests.s_nested:type_name -> pb3.Nested
-	5,  // pb3.Nested.s_nested:type_name -> pb3.Nested
-	0,  // pb3.Oneofs.oneof_enum:type_name -> pb3.Enum
-	5,  // pb3.Oneofs.oneof_nested:type_name -> pb3.Nested
-	9,  // pb3.Maps.int32_to_str:type_name -> pb3.Maps.Int32ToStrEntry
-	10, // pb3.Maps.bool_to_uint32:type_name -> pb3.Maps.BoolToUint32Entry
-	11, // pb3.Maps.uint64_to_enum:type_name -> pb3.Maps.Uint64ToEnumEntry
-	12, // pb3.Maps.str_to_nested:type_name -> pb3.Maps.StrToNestedEntry
-	13, // pb3.Maps.str_to_oneofs:type_name -> pb3.Maps.StrToOneofsEntry
-	0,  // pb3.Maps.Uint64ToEnumEntry.value:type_name -> pb3.Enum
-	5,  // pb3.Maps.StrToNestedEntry.value:type_name -> pb3.Nested
-	6,  // pb3.Maps.StrToOneofsEntry.value:type_name -> pb3.Oneofs
-	14, // starting offset of method output_type sub-list
-	14, // starting offset of method input_type sub-list
-	14, // starting offset of extension type_name sub-list
-	14, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	0,  // 0: pb3.Enums.s_enum:type_name -> pb3.Enum
+	1,  // 1: pb3.Enums.s_nested_enum:type_name -> pb3.Enums.NestedEnum
+	5,  // 2: pb3.Nests.s_nested:type_name -> pb3.Nested
+	5,  // 3: pb3.Nested.s_nested:type_name -> pb3.Nested
+	0,  // 4: pb3.Oneofs.oneof_enum:type_name -> pb3.Enum
+	5,  // 5: pb3.Oneofs.oneof_nested:type_name -> pb3.Nested
+	9,  // 6: pb3.Maps.int32_to_str:type_name -> pb3.Maps.Int32ToStrEntry
+	10, // 7: pb3.Maps.bool_to_uint32:type_name -> pb3.Maps.BoolToUint32Entry
+	11, // 8: pb3.Maps.uint64_to_enum:type_name -> pb3.Maps.Uint64ToEnumEntry
+	12, // 9: pb3.Maps.str_to_nested:type_name -> pb3.Maps.StrToNestedEntry
+	13, // 10: pb3.Maps.str_to_oneofs:type_name -> pb3.Maps.StrToOneofsEntry
+	0,  // 11: pb3.Maps.Uint64ToEnumEntry.value:type_name -> pb3.Enum
+	5,  // 12: pb3.Maps.StrToNestedEntry.value:type_name -> pb3.Nested
+	6,  // 13: pb3.Maps.StrToOneofsEntry.value:type_name -> pb3.Oneofs
+	14, // [14:14] is the sub-list for method output_type
+	14, // [14:14] is the sub-list for method input_type
+	14, // [14:14] is the sub-list for extension type_name
+	14, // [14:14] is the sub-list for extension extendee
+	0,  // [0:14] is the sub-list for field type_name
 }
 
 func init() { file_pb3_test_proto_init() }
diff --git a/internal/testprotos/benchmarks/benchmarks.pb.go b/internal/testprotos/benchmarks/benchmarks.pb.go
index c07f40a..7490e11 100644
--- a/internal/testprotos/benchmarks/benchmarks.pb.go
+++ b/internal/testprotos/benchmarks/benchmarks.pb.go
@@ -157,11 +157,11 @@
 	(*BenchmarkDataset)(nil), // 0: benchmarks.BenchmarkDataset
 }
 var file_benchmarks_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_benchmarks_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.pb.go b/internal/testprotos/benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.pb.go
index f641592..f07bfc5 100644
--- a/internal/testprotos/benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.pb.go
@@ -763,12 +763,12 @@
 	(*GoogleMessage1SubMessage)(nil), // 1: benchmarks.proto2.GoogleMessage1SubMessage
 }
 var file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_depIdxs = []int32{
-	1, // benchmarks.proto2.GoogleMessage1.field15:type_name -> benchmarks.proto2.GoogleMessage1SubMessage
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: benchmarks.proto2.GoogleMessage1.field15:type_name -> benchmarks.proto2.GoogleMessage1SubMessage
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message1_proto2_benchmark_message1_proto2_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.pb.go b/internal/testprotos/benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.pb.go
index d7f93ca..50628be 100644
--- a/internal/testprotos/benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.pb.go
@@ -712,12 +712,12 @@
 	(*GoogleMessage1SubMessage)(nil), // 1: benchmarks.proto3.GoogleMessage1SubMessage
 }
 var file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_depIdxs = []int32{
-	1, // benchmarks.proto3.GoogleMessage1.field15:type_name -> benchmarks.proto3.GoogleMessage1SubMessage
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: benchmarks.proto3.GoogleMessage1.field15:type_name -> benchmarks.proto3.GoogleMessage1SubMessage
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message1_proto3_benchmark_message1_proto3_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message2/benchmark_message2.pb.go b/internal/testprotos/benchmarks/datasets/google_message2/benchmark_message2.pb.go
index fbc6fc3..72ef204 100644
--- a/internal/testprotos/benchmarks/datasets/google_message2/benchmark_message2.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message2/benchmark_message2.pb.go
@@ -746,13 +746,13 @@
 	(*GoogleMessage2_Group1)(nil),        // 2: benchmarks.proto2.GoogleMessage2.Group1
 }
 var file_datasets_google_message2_benchmark_message2_proto_depIdxs = []int32{
-	2, // benchmarks.proto2.GoogleMessage2.group1:type_name -> benchmarks.proto2.GoogleMessage2.Group1
-	1, // benchmarks.proto2.GoogleMessage2.Group1.field31:type_name -> benchmarks.proto2.GoogleMessage2GroupedMessage
-	2, // starting offset of method output_type sub-list
-	2, // starting offset of method input_type sub-list
-	2, // starting offset of extension type_name sub-list
-	2, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	2, // 0: benchmarks.proto2.GoogleMessage2.group1:type_name -> benchmarks.proto2.GoogleMessage2.Group1
+	1, // 1: benchmarks.proto2.GoogleMessage2.Group1.field31:type_name -> benchmarks.proto2.GoogleMessage2GroupedMessage
+	2, // [2:2] is the sub-list for method output_type
+	2, // [2:2] is the sub-list for method input_type
+	2, // [2:2] is the sub-list for extension type_name
+	2, // [2:2] is the sub-list for extension extendee
+	0, // [0:2] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message2_benchmark_message2_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3.pb.go
index cad680e..9c2c056 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3.pb.go
@@ -5860,267 +5860,267 @@
 	(*Message13145)(nil),              // 89: benchmarks.google_message3.Message13145
 }
 var file_datasets_google_message3_benchmark_message3_proto_depIdxs = []int32{
-	33,  // benchmarks.google_message3.GoogleMessage3.field37519:type_name -> benchmarks.google_message3.Message37487
-	34,  // benchmarks.google_message3.GoogleMessage3.field37520:type_name -> benchmarks.google_message3.Message36876
-	35,  // benchmarks.google_message3.GoogleMessage3.field37521:type_name -> benchmarks.google_message3.Message13062
-	36,  // benchmarks.google_message3.GoogleMessage3.field37522:type_name -> benchmarks.google_message3.Message952
-	37,  // benchmarks.google_message3.GoogleMessage3.field37523:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37524:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37525:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37526:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37527:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37528:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37529:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37530:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37531:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37532:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.GoogleMessage3.field37533:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message1327.field1369:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38,  // benchmarks.google_message3.Message1327.field1370:type_name -> benchmarks.google_message3.Message1328
-	37,  // benchmarks.google_message3.Message1327.field1371:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message1327.field1372:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	39,  // benchmarks.google_message3.Message3672.field3727:type_name -> benchmarks.google_message3.Enum3476
-	29,  // benchmarks.google_message3.Message3672.message3673:type_name -> benchmarks.google_message3.Message3672.Message3673
-	30,  // benchmarks.google_message3.Message3672.message3674:type_name -> benchmarks.google_message3.Message3672.Message3674
-	39,  // benchmarks.google_message3.Message3672.field3734:type_name -> benchmarks.google_message3.Enum3476
-	37,  // benchmarks.google_message3.Message3672.field3736:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	40,  // benchmarks.google_message3.Message3804.field3820:type_name -> benchmarks.google_message3.Enum3805
-	41,  // benchmarks.google_message3.Message3804.field3824:type_name -> benchmarks.google_message3.Enum3783
-	42,  // benchmarks.google_message3.Message6849.field6910:type_name -> benchmarks.google_message3.Message6850
-	43,  // benchmarks.google_message3.Message6866.field6973:type_name -> benchmarks.google_message3.Message6863
-	44,  // benchmarks.google_message3.Message6870.field6991:type_name -> benchmarks.google_message3.Message6871
-	37,  // benchmarks.google_message3.Message7651.field7708:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	45,  // benchmarks.google_message3.Message7651.field7715:type_name -> benchmarks.google_message3.Message7547
-	45,  // benchmarks.google_message3.Message7651.field7716:type_name -> benchmarks.google_message3.Message7547
-	37,  // benchmarks.google_message3.Message7651.field7717:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	46,  // benchmarks.google_message3.Message7651.field7720:type_name -> benchmarks.google_message3.Message7648
-	37,  // benchmarks.google_message3.Message7651.field7725:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	47,  // benchmarks.google_message3.Message7651.field7726:type_name -> benchmarks.google_message3.UnusedEnum
-	48,  // benchmarks.google_message3.Message7651.field7727:type_name -> benchmarks.google_message3.Enum7654
-	37,  // benchmarks.google_message3.Message7651.field7729:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	49,  // benchmarks.google_message3.Message7864.field7868:type_name -> benchmarks.google_message3.Message7865
-	49,  // benchmarks.google_message3.Message7864.field7869:type_name -> benchmarks.google_message3.Message7865
-	49,  // benchmarks.google_message3.Message7864.field7870:type_name -> benchmarks.google_message3.Message7865
-	37,  // benchmarks.google_message3.Message7864.field7871:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	50,  // benchmarks.google_message3.Message7929.field7950:type_name -> benchmarks.google_message3.Message7919
-	37,  // benchmarks.google_message3.Message7929.field7951:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	51,  // benchmarks.google_message3.Message7929.field7952:type_name -> benchmarks.google_message3.Message7920
-	52,  // benchmarks.google_message3.Message7929.field7953:type_name -> benchmarks.google_message3.Message7921
-	53,  // benchmarks.google_message3.Message7929.field7954:type_name -> benchmarks.google_message3.Message7928
-	37,  // benchmarks.google_message3.Message7929.field7959:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	54,  // benchmarks.google_message3.Message8508.field8517:type_name -> benchmarks.google_message3.Message8511
-	55,  // benchmarks.google_message3.Message8508.field8518:type_name -> benchmarks.google_message3.Message8512
-	56,  // benchmarks.google_message3.Message8508.field8519:type_name -> benchmarks.google_message3.Message8513
-	57,  // benchmarks.google_message3.Message8508.field8521:type_name -> benchmarks.google_message3.Message8514
-	37,  // benchmarks.google_message3.Message8508.field8522:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	58,  // benchmarks.google_message3.Message8508.field8523:type_name -> benchmarks.google_message3.Message8515
-	37,  // benchmarks.google_message3.Message8508.field8524:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	59,  // benchmarks.google_message3.Message10177.field10270:type_name -> benchmarks.google_message3.Message10155
-	60,  // benchmarks.google_message3.Message10323.field10360:type_name -> benchmarks.google_message3.Message10320
-	61,  // benchmarks.google_message3.Message10324.field10362:type_name -> benchmarks.google_message3.Message10322
-	62,  // benchmarks.google_message3.Message10324.field10363:type_name -> benchmarks.google_message3.Message10321
-	63,  // benchmarks.google_message3.Message11990.field12030:type_name -> benchmarks.google_message3.Message11988
-	64,  // benchmarks.google_message3.Message12691.field12715:type_name -> benchmarks.google_message3.Message12668
-	18,  // benchmarks.google_message3.Message12870.field12888:type_name -> benchmarks.google_message3.Message12870
-	65,  // benchmarks.google_message3.Message12870.field12894:type_name -> benchmarks.google_message3.Message12825
-	66,  // benchmarks.google_message3.Message12870.field12897:type_name -> benchmarks.google_message3.Enum12871
-	37,  // benchmarks.google_message3.Message16507.field16521:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message16507.field16522:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message16507.field16523:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message16507.field16527:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	67,  // benchmarks.google_message3.Message16507.field16531:type_name -> benchmarks.google_message3.Message16478
-	68,  // benchmarks.google_message3.Message16564.field16568:type_name -> benchmarks.google_message3.Message16552
-	69,  // benchmarks.google_message3.Message16661.field16671:type_name -> benchmarks.google_message3.Message16660
-	70,  // benchmarks.google_message3.Message16746.field16806:type_name -> benchmarks.google_message3.Message16727
-	71,  // benchmarks.google_message3.Message16746.field16809:type_name -> benchmarks.google_message3.Message16725
-	31,  // benchmarks.google_message3.Message17786.message17787:type_name -> benchmarks.google_message3.Message17786.Message17787
-	72,  // benchmarks.google_message3.Message17786.field18175:type_name -> benchmarks.google_message3.Message17782
-	73,  // benchmarks.google_message3.Message22857.field22874:type_name -> benchmarks.google_message3.Message22853
-	32,  // benchmarks.google_message3.Message24404.message24405:type_name -> benchmarks.google_message3.Message24404.Message24405
-	74,  // benchmarks.google_message3.Message24404.field24684:type_name -> benchmarks.google_message3.Message24403
-	37,  // benchmarks.google_message3.Message27300.field27302:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	75,  // benchmarks.google_message3.Message27453.field27464:type_name -> benchmarks.google_message3.Message27454
-	76,  // benchmarks.google_message3.Message27453.field27470:type_name -> benchmarks.google_message3.Message27357
-	77,  // benchmarks.google_message3.Message27453.field27471:type_name -> benchmarks.google_message3.Message27360
-	37,  // benchmarks.google_message3.Message27453.field27477:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message27453.field27481:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	39,  // benchmarks.google_message3.Message3672.Message3673.field3738:type_name -> benchmarks.google_message3.Enum3476
-	39,  // benchmarks.google_message3.Message3672.Message3674.field3740:type_name -> benchmarks.google_message3.Enum3476
-	78,  // benchmarks.google_message3.Message17786.Message17787.field18179:type_name -> benchmarks.google_message3.Message17783
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18180:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18181:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18182:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18183:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	79,  // benchmarks.google_message3.Message17786.Message17787.field18184:type_name -> benchmarks.google_message3.Message17726
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18185:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	80,  // benchmarks.google_message3.Message17786.Message17787.field18186:type_name -> benchmarks.google_message3.Message16945
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18187:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18188:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18189:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18190:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18191:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18192:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18193:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18194:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18195:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	81,  // benchmarks.google_message3.Message17786.Message17787.field18196:type_name -> benchmarks.google_message3.Enum16925
-	47,  // benchmarks.google_message3.Message17786.Message17787.field18198:type_name -> benchmarks.google_message3.UnusedEnum
-	37,  // benchmarks.google_message3.Message17786.Message17787.field18199:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	82,  // benchmarks.google_message3.Message24404.Message24405.field24688:type_name -> benchmarks.google_message3.Message24317
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24689:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	83,  // benchmarks.google_message3.Message24404.Message24405.field24690:type_name -> benchmarks.google_message3.Message24376
-	84,  // benchmarks.google_message3.Message24404.Message24405.field24691:type_name -> benchmarks.google_message3.Message24345
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24692:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	85,  // benchmarks.google_message3.Message24404.Message24405.field24693:type_name -> benchmarks.google_message3.Message24379
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24694:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24695:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	86,  // benchmarks.google_message3.Message24404.Message24405.field24696:type_name -> benchmarks.google_message3.Message24391
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24697:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24698:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24699:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24700:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24701:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	81,  // benchmarks.google_message3.Message24404.Message24405.field24702:type_name -> benchmarks.google_message3.Enum16925
-	87,  // benchmarks.google_message3.Message24404.Message24405.field24705:type_name -> benchmarks.google_message3.Enum16891
-	37,  // benchmarks.google_message3.Message24404.Message24405.field24706:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	47,  // benchmarks.google_message3.Message24404.Message24405.field24711:type_name -> benchmarks.google_message3.UnusedEnum
-	47,  // benchmarks.google_message3.Message24404.Message24405.field24713:type_name -> benchmarks.google_message3.UnusedEnum
-	80,  // benchmarks.google_message3.field17026:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17027:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17031:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17032:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17038:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17039:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17042:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17043:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17044:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17048:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17049:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17052:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17053:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17056:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17057:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17060:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17073:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17076:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17078:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17082:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17091:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17098:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17101:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17102:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17107:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17133:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17134:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17160:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17168:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17170:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17172:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17174:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17175:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17178:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17185:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17207:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17238:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17289:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17290:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17296:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17298:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17301:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17412:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17438:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17458:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17460:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17466:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17617:extendee -> benchmarks.google_message3.Message16945
-	80,  // benchmarks.google_message3.field17618:extendee -> benchmarks.google_message3.Message16945
-	88,  // benchmarks.google_message3.Message1327.field1373:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message3672.field3737:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message3804.field3825:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message6849.field6911:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message6866.field6974:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message6870.field6992:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message7651.field7730:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message7864.field7872:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message7929.field7962:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message8508.field8534:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message9122.field9134:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message10177.field10271:extendee -> benchmarks.google_message3.Message0
-	59,  // benchmarks.google_message3.Message10278.field10289:extendee -> benchmarks.google_message3.Message10155
-	59,  // benchmarks.google_message3.Message10323.field10361:extendee -> benchmarks.google_message3.Message10155
-	59,  // benchmarks.google_message3.Message10324.field10364:extendee -> benchmarks.google_message3.Message10155
-	88,  // benchmarks.google_message3.Message11990.field12031:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message12691.field12716:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message12870.field12899:extendee -> benchmarks.google_message3.Message0
-	89,  // benchmarks.google_message3.Message13154.field13166:extendee -> benchmarks.google_message3.Message13145
-	88,  // benchmarks.google_message3.Message16507.field16542:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message16564.field16569:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message16661.field16673:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message16746.field16810:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message17786.field18176:extendee -> benchmarks.google_message3.Message0
-	59,  // benchmarks.google_message3.Message22857.field22875:extendee -> benchmarks.google_message3.Message10155
-	88,  // benchmarks.google_message3.Message24404.field24685:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message27300.field27304:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.Message27453.field27482:extendee -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17031:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17032:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17038:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17039:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17042:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17052:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17053:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17060:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17076:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17082:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17091:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17098:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17101:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17172:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17175:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17178:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17185:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17238:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17289:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17290:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17296:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17301:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17412:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17438:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17458:type_name -> benchmarks.google_message3.Message0
-	88,  // benchmarks.google_message3.field17617:type_name -> benchmarks.google_message3.Message0
-	1,   // benchmarks.google_message3.Message1327.field1373:type_name -> benchmarks.google_message3.Message1327
-	2,   // benchmarks.google_message3.Message3672.field3737:type_name -> benchmarks.google_message3.Message3672
-	3,   // benchmarks.google_message3.Message3804.field3825:type_name -> benchmarks.google_message3.Message3804
-	4,   // benchmarks.google_message3.Message6849.field6911:type_name -> benchmarks.google_message3.Message6849
-	5,   // benchmarks.google_message3.Message6866.field6974:type_name -> benchmarks.google_message3.Message6866
-	6,   // benchmarks.google_message3.Message6870.field6992:type_name -> benchmarks.google_message3.Message6870
-	7,   // benchmarks.google_message3.Message7651.field7730:type_name -> benchmarks.google_message3.Message7651
-	8,   // benchmarks.google_message3.Message7864.field7872:type_name -> benchmarks.google_message3.Message7864
-	9,   // benchmarks.google_message3.Message7929.field7962:type_name -> benchmarks.google_message3.Message7929
-	10,  // benchmarks.google_message3.Message8508.field8534:type_name -> benchmarks.google_message3.Message8508
-	11,  // benchmarks.google_message3.Message9122.field9134:type_name -> benchmarks.google_message3.Message9122
-	12,  // benchmarks.google_message3.Message10177.field10271:type_name -> benchmarks.google_message3.Message10177
-	13,  // benchmarks.google_message3.Message10278.field10289:type_name -> benchmarks.google_message3.Message10278
-	14,  // benchmarks.google_message3.Message10323.field10361:type_name -> benchmarks.google_message3.Message10323
-	15,  // benchmarks.google_message3.Message10324.field10364:type_name -> benchmarks.google_message3.Message10324
-	16,  // benchmarks.google_message3.Message11990.field12031:type_name -> benchmarks.google_message3.Message11990
-	17,  // benchmarks.google_message3.Message12691.field12716:type_name -> benchmarks.google_message3.Message12691
-	18,  // benchmarks.google_message3.Message12870.field12899:type_name -> benchmarks.google_message3.Message12870
-	19,  // benchmarks.google_message3.Message13154.field13166:type_name -> benchmarks.google_message3.Message13154
-	20,  // benchmarks.google_message3.Message16507.field16542:type_name -> benchmarks.google_message3.Message16507
-	21,  // benchmarks.google_message3.Message16564.field16569:type_name -> benchmarks.google_message3.Message16564
-	22,  // benchmarks.google_message3.Message16661.field16673:type_name -> benchmarks.google_message3.Message16661
-	23,  // benchmarks.google_message3.Message16746.field16810:type_name -> benchmarks.google_message3.Message16746
-	24,  // benchmarks.google_message3.Message17786.field18176:type_name -> benchmarks.google_message3.Message17786
-	25,  // benchmarks.google_message3.Message22857.field22875:type_name -> benchmarks.google_message3.Message22857
-	26,  // benchmarks.google_message3.Message24404.field24685:type_name -> benchmarks.google_message3.Message24404
-	27,  // benchmarks.google_message3.Message27300.field27304:type_name -> benchmarks.google_message3.Message27300
-	28,  // benchmarks.google_message3.Message27453.field27482:type_name -> benchmarks.google_message3.Message27453
-	256, // starting offset of method output_type sub-list
-	256, // starting offset of method input_type sub-list
-	202, // starting offset of extension type_name sub-list
-	125, // starting offset of extension extendee sub-list
-	0,   // starting offset of field type_name sub-list
+	33,  // 0: benchmarks.google_message3.GoogleMessage3.field37519:type_name -> benchmarks.google_message3.Message37487
+	34,  // 1: benchmarks.google_message3.GoogleMessage3.field37520:type_name -> benchmarks.google_message3.Message36876
+	35,  // 2: benchmarks.google_message3.GoogleMessage3.field37521:type_name -> benchmarks.google_message3.Message13062
+	36,  // 3: benchmarks.google_message3.GoogleMessage3.field37522:type_name -> benchmarks.google_message3.Message952
+	37,  // 4: benchmarks.google_message3.GoogleMessage3.field37523:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 5: benchmarks.google_message3.GoogleMessage3.field37524:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 6: benchmarks.google_message3.GoogleMessage3.field37525:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 7: benchmarks.google_message3.GoogleMessage3.field37526:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 8: benchmarks.google_message3.GoogleMessage3.field37527:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 9: benchmarks.google_message3.GoogleMessage3.field37528:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 10: benchmarks.google_message3.GoogleMessage3.field37529:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 11: benchmarks.google_message3.GoogleMessage3.field37530:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 12: benchmarks.google_message3.GoogleMessage3.field37531:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 13: benchmarks.google_message3.GoogleMessage3.field37532:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 14: benchmarks.google_message3.GoogleMessage3.field37533:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 15: benchmarks.google_message3.Message1327.field1369:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38,  // 16: benchmarks.google_message3.Message1327.field1370:type_name -> benchmarks.google_message3.Message1328
+	37,  // 17: benchmarks.google_message3.Message1327.field1371:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 18: benchmarks.google_message3.Message1327.field1372:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	39,  // 19: benchmarks.google_message3.Message3672.field3727:type_name -> benchmarks.google_message3.Enum3476
+	29,  // 20: benchmarks.google_message3.Message3672.message3673:type_name -> benchmarks.google_message3.Message3672.Message3673
+	30,  // 21: benchmarks.google_message3.Message3672.message3674:type_name -> benchmarks.google_message3.Message3672.Message3674
+	39,  // 22: benchmarks.google_message3.Message3672.field3734:type_name -> benchmarks.google_message3.Enum3476
+	37,  // 23: benchmarks.google_message3.Message3672.field3736:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	40,  // 24: benchmarks.google_message3.Message3804.field3820:type_name -> benchmarks.google_message3.Enum3805
+	41,  // 25: benchmarks.google_message3.Message3804.field3824:type_name -> benchmarks.google_message3.Enum3783
+	42,  // 26: benchmarks.google_message3.Message6849.field6910:type_name -> benchmarks.google_message3.Message6850
+	43,  // 27: benchmarks.google_message3.Message6866.field6973:type_name -> benchmarks.google_message3.Message6863
+	44,  // 28: benchmarks.google_message3.Message6870.field6991:type_name -> benchmarks.google_message3.Message6871
+	37,  // 29: benchmarks.google_message3.Message7651.field7708:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	45,  // 30: benchmarks.google_message3.Message7651.field7715:type_name -> benchmarks.google_message3.Message7547
+	45,  // 31: benchmarks.google_message3.Message7651.field7716:type_name -> benchmarks.google_message3.Message7547
+	37,  // 32: benchmarks.google_message3.Message7651.field7717:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	46,  // 33: benchmarks.google_message3.Message7651.field7720:type_name -> benchmarks.google_message3.Message7648
+	37,  // 34: benchmarks.google_message3.Message7651.field7725:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	47,  // 35: benchmarks.google_message3.Message7651.field7726:type_name -> benchmarks.google_message3.UnusedEnum
+	48,  // 36: benchmarks.google_message3.Message7651.field7727:type_name -> benchmarks.google_message3.Enum7654
+	37,  // 37: benchmarks.google_message3.Message7651.field7729:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	49,  // 38: benchmarks.google_message3.Message7864.field7868:type_name -> benchmarks.google_message3.Message7865
+	49,  // 39: benchmarks.google_message3.Message7864.field7869:type_name -> benchmarks.google_message3.Message7865
+	49,  // 40: benchmarks.google_message3.Message7864.field7870:type_name -> benchmarks.google_message3.Message7865
+	37,  // 41: benchmarks.google_message3.Message7864.field7871:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	50,  // 42: benchmarks.google_message3.Message7929.field7950:type_name -> benchmarks.google_message3.Message7919
+	37,  // 43: benchmarks.google_message3.Message7929.field7951:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	51,  // 44: benchmarks.google_message3.Message7929.field7952:type_name -> benchmarks.google_message3.Message7920
+	52,  // 45: benchmarks.google_message3.Message7929.field7953:type_name -> benchmarks.google_message3.Message7921
+	53,  // 46: benchmarks.google_message3.Message7929.field7954:type_name -> benchmarks.google_message3.Message7928
+	37,  // 47: benchmarks.google_message3.Message7929.field7959:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	54,  // 48: benchmarks.google_message3.Message8508.field8517:type_name -> benchmarks.google_message3.Message8511
+	55,  // 49: benchmarks.google_message3.Message8508.field8518:type_name -> benchmarks.google_message3.Message8512
+	56,  // 50: benchmarks.google_message3.Message8508.field8519:type_name -> benchmarks.google_message3.Message8513
+	57,  // 51: benchmarks.google_message3.Message8508.field8521:type_name -> benchmarks.google_message3.Message8514
+	37,  // 52: benchmarks.google_message3.Message8508.field8522:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	58,  // 53: benchmarks.google_message3.Message8508.field8523:type_name -> benchmarks.google_message3.Message8515
+	37,  // 54: benchmarks.google_message3.Message8508.field8524:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	59,  // 55: benchmarks.google_message3.Message10177.field10270:type_name -> benchmarks.google_message3.Message10155
+	60,  // 56: benchmarks.google_message3.Message10323.field10360:type_name -> benchmarks.google_message3.Message10320
+	61,  // 57: benchmarks.google_message3.Message10324.field10362:type_name -> benchmarks.google_message3.Message10322
+	62,  // 58: benchmarks.google_message3.Message10324.field10363:type_name -> benchmarks.google_message3.Message10321
+	63,  // 59: benchmarks.google_message3.Message11990.field12030:type_name -> benchmarks.google_message3.Message11988
+	64,  // 60: benchmarks.google_message3.Message12691.field12715:type_name -> benchmarks.google_message3.Message12668
+	18,  // 61: benchmarks.google_message3.Message12870.field12888:type_name -> benchmarks.google_message3.Message12870
+	65,  // 62: benchmarks.google_message3.Message12870.field12894:type_name -> benchmarks.google_message3.Message12825
+	66,  // 63: benchmarks.google_message3.Message12870.field12897:type_name -> benchmarks.google_message3.Enum12871
+	37,  // 64: benchmarks.google_message3.Message16507.field16521:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 65: benchmarks.google_message3.Message16507.field16522:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 66: benchmarks.google_message3.Message16507.field16523:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 67: benchmarks.google_message3.Message16507.field16527:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	67,  // 68: benchmarks.google_message3.Message16507.field16531:type_name -> benchmarks.google_message3.Message16478
+	68,  // 69: benchmarks.google_message3.Message16564.field16568:type_name -> benchmarks.google_message3.Message16552
+	69,  // 70: benchmarks.google_message3.Message16661.field16671:type_name -> benchmarks.google_message3.Message16660
+	70,  // 71: benchmarks.google_message3.Message16746.field16806:type_name -> benchmarks.google_message3.Message16727
+	71,  // 72: benchmarks.google_message3.Message16746.field16809:type_name -> benchmarks.google_message3.Message16725
+	31,  // 73: benchmarks.google_message3.Message17786.message17787:type_name -> benchmarks.google_message3.Message17786.Message17787
+	72,  // 74: benchmarks.google_message3.Message17786.field18175:type_name -> benchmarks.google_message3.Message17782
+	73,  // 75: benchmarks.google_message3.Message22857.field22874:type_name -> benchmarks.google_message3.Message22853
+	32,  // 76: benchmarks.google_message3.Message24404.message24405:type_name -> benchmarks.google_message3.Message24404.Message24405
+	74,  // 77: benchmarks.google_message3.Message24404.field24684:type_name -> benchmarks.google_message3.Message24403
+	37,  // 78: benchmarks.google_message3.Message27300.field27302:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	75,  // 79: benchmarks.google_message3.Message27453.field27464:type_name -> benchmarks.google_message3.Message27454
+	76,  // 80: benchmarks.google_message3.Message27453.field27470:type_name -> benchmarks.google_message3.Message27357
+	77,  // 81: benchmarks.google_message3.Message27453.field27471:type_name -> benchmarks.google_message3.Message27360
+	37,  // 82: benchmarks.google_message3.Message27453.field27477:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 83: benchmarks.google_message3.Message27453.field27481:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	39,  // 84: benchmarks.google_message3.Message3672.Message3673.field3738:type_name -> benchmarks.google_message3.Enum3476
+	39,  // 85: benchmarks.google_message3.Message3672.Message3674.field3740:type_name -> benchmarks.google_message3.Enum3476
+	78,  // 86: benchmarks.google_message3.Message17786.Message17787.field18179:type_name -> benchmarks.google_message3.Message17783
+	37,  // 87: benchmarks.google_message3.Message17786.Message17787.field18180:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 88: benchmarks.google_message3.Message17786.Message17787.field18181:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 89: benchmarks.google_message3.Message17786.Message17787.field18182:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 90: benchmarks.google_message3.Message17786.Message17787.field18183:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	79,  // 91: benchmarks.google_message3.Message17786.Message17787.field18184:type_name -> benchmarks.google_message3.Message17726
+	37,  // 92: benchmarks.google_message3.Message17786.Message17787.field18185:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	80,  // 93: benchmarks.google_message3.Message17786.Message17787.field18186:type_name -> benchmarks.google_message3.Message16945
+	37,  // 94: benchmarks.google_message3.Message17786.Message17787.field18187:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 95: benchmarks.google_message3.Message17786.Message17787.field18188:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 96: benchmarks.google_message3.Message17786.Message17787.field18189:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 97: benchmarks.google_message3.Message17786.Message17787.field18190:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 98: benchmarks.google_message3.Message17786.Message17787.field18191:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 99: benchmarks.google_message3.Message17786.Message17787.field18192:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 100: benchmarks.google_message3.Message17786.Message17787.field18193:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 101: benchmarks.google_message3.Message17786.Message17787.field18194:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 102: benchmarks.google_message3.Message17786.Message17787.field18195:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	81,  // 103: benchmarks.google_message3.Message17786.Message17787.field18196:type_name -> benchmarks.google_message3.Enum16925
+	47,  // 104: benchmarks.google_message3.Message17786.Message17787.field18198:type_name -> benchmarks.google_message3.UnusedEnum
+	37,  // 105: benchmarks.google_message3.Message17786.Message17787.field18199:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	82,  // 106: benchmarks.google_message3.Message24404.Message24405.field24688:type_name -> benchmarks.google_message3.Message24317
+	37,  // 107: benchmarks.google_message3.Message24404.Message24405.field24689:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	83,  // 108: benchmarks.google_message3.Message24404.Message24405.field24690:type_name -> benchmarks.google_message3.Message24376
+	84,  // 109: benchmarks.google_message3.Message24404.Message24405.field24691:type_name -> benchmarks.google_message3.Message24345
+	37,  // 110: benchmarks.google_message3.Message24404.Message24405.field24692:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	85,  // 111: benchmarks.google_message3.Message24404.Message24405.field24693:type_name -> benchmarks.google_message3.Message24379
+	37,  // 112: benchmarks.google_message3.Message24404.Message24405.field24694:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 113: benchmarks.google_message3.Message24404.Message24405.field24695:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	86,  // 114: benchmarks.google_message3.Message24404.Message24405.field24696:type_name -> benchmarks.google_message3.Message24391
+	37,  // 115: benchmarks.google_message3.Message24404.Message24405.field24697:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 116: benchmarks.google_message3.Message24404.Message24405.field24698:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 117: benchmarks.google_message3.Message24404.Message24405.field24699:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 118: benchmarks.google_message3.Message24404.Message24405.field24700:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	37,  // 119: benchmarks.google_message3.Message24404.Message24405.field24701:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	81,  // 120: benchmarks.google_message3.Message24404.Message24405.field24702:type_name -> benchmarks.google_message3.Enum16925
+	87,  // 121: benchmarks.google_message3.Message24404.Message24405.field24705:type_name -> benchmarks.google_message3.Enum16891
+	37,  // 122: benchmarks.google_message3.Message24404.Message24405.field24706:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	47,  // 123: benchmarks.google_message3.Message24404.Message24405.field24711:type_name -> benchmarks.google_message3.UnusedEnum
+	47,  // 124: benchmarks.google_message3.Message24404.Message24405.field24713:type_name -> benchmarks.google_message3.UnusedEnum
+	80,  // 125: benchmarks.google_message3.field17026:extendee -> benchmarks.google_message3.Message16945
+	80,  // 126: benchmarks.google_message3.field17027:extendee -> benchmarks.google_message3.Message16945
+	80,  // 127: benchmarks.google_message3.field17031:extendee -> benchmarks.google_message3.Message16945
+	80,  // 128: benchmarks.google_message3.field17032:extendee -> benchmarks.google_message3.Message16945
+	80,  // 129: benchmarks.google_message3.field17038:extendee -> benchmarks.google_message3.Message16945
+	80,  // 130: benchmarks.google_message3.field17039:extendee -> benchmarks.google_message3.Message16945
+	80,  // 131: benchmarks.google_message3.field17042:extendee -> benchmarks.google_message3.Message16945
+	80,  // 132: benchmarks.google_message3.field17043:extendee -> benchmarks.google_message3.Message16945
+	80,  // 133: benchmarks.google_message3.field17044:extendee -> benchmarks.google_message3.Message16945
+	80,  // 134: benchmarks.google_message3.field17048:extendee -> benchmarks.google_message3.Message16945
+	80,  // 135: benchmarks.google_message3.field17049:extendee -> benchmarks.google_message3.Message16945
+	80,  // 136: benchmarks.google_message3.field17052:extendee -> benchmarks.google_message3.Message16945
+	80,  // 137: benchmarks.google_message3.field17053:extendee -> benchmarks.google_message3.Message16945
+	80,  // 138: benchmarks.google_message3.field17056:extendee -> benchmarks.google_message3.Message16945
+	80,  // 139: benchmarks.google_message3.field17057:extendee -> benchmarks.google_message3.Message16945
+	80,  // 140: benchmarks.google_message3.field17060:extendee -> benchmarks.google_message3.Message16945
+	80,  // 141: benchmarks.google_message3.field17073:extendee -> benchmarks.google_message3.Message16945
+	80,  // 142: benchmarks.google_message3.field17076:extendee -> benchmarks.google_message3.Message16945
+	80,  // 143: benchmarks.google_message3.field17078:extendee -> benchmarks.google_message3.Message16945
+	80,  // 144: benchmarks.google_message3.field17082:extendee -> benchmarks.google_message3.Message16945
+	80,  // 145: benchmarks.google_message3.field17091:extendee -> benchmarks.google_message3.Message16945
+	80,  // 146: benchmarks.google_message3.field17098:extendee -> benchmarks.google_message3.Message16945
+	80,  // 147: benchmarks.google_message3.field17101:extendee -> benchmarks.google_message3.Message16945
+	80,  // 148: benchmarks.google_message3.field17102:extendee -> benchmarks.google_message3.Message16945
+	80,  // 149: benchmarks.google_message3.field17107:extendee -> benchmarks.google_message3.Message16945
+	80,  // 150: benchmarks.google_message3.field17133:extendee -> benchmarks.google_message3.Message16945
+	80,  // 151: benchmarks.google_message3.field17134:extendee -> benchmarks.google_message3.Message16945
+	80,  // 152: benchmarks.google_message3.field17160:extendee -> benchmarks.google_message3.Message16945
+	80,  // 153: benchmarks.google_message3.field17168:extendee -> benchmarks.google_message3.Message16945
+	80,  // 154: benchmarks.google_message3.field17170:extendee -> benchmarks.google_message3.Message16945
+	80,  // 155: benchmarks.google_message3.field17172:extendee -> benchmarks.google_message3.Message16945
+	80,  // 156: benchmarks.google_message3.field17174:extendee -> benchmarks.google_message3.Message16945
+	80,  // 157: benchmarks.google_message3.field17175:extendee -> benchmarks.google_message3.Message16945
+	80,  // 158: benchmarks.google_message3.field17178:extendee -> benchmarks.google_message3.Message16945
+	80,  // 159: benchmarks.google_message3.field17185:extendee -> benchmarks.google_message3.Message16945
+	80,  // 160: benchmarks.google_message3.field17207:extendee -> benchmarks.google_message3.Message16945
+	80,  // 161: benchmarks.google_message3.field17238:extendee -> benchmarks.google_message3.Message16945
+	80,  // 162: benchmarks.google_message3.field17289:extendee -> benchmarks.google_message3.Message16945
+	80,  // 163: benchmarks.google_message3.field17290:extendee -> benchmarks.google_message3.Message16945
+	80,  // 164: benchmarks.google_message3.field17296:extendee -> benchmarks.google_message3.Message16945
+	80,  // 165: benchmarks.google_message3.field17298:extendee -> benchmarks.google_message3.Message16945
+	80,  // 166: benchmarks.google_message3.field17301:extendee -> benchmarks.google_message3.Message16945
+	80,  // 167: benchmarks.google_message3.field17412:extendee -> benchmarks.google_message3.Message16945
+	80,  // 168: benchmarks.google_message3.field17438:extendee -> benchmarks.google_message3.Message16945
+	80,  // 169: benchmarks.google_message3.field17458:extendee -> benchmarks.google_message3.Message16945
+	80,  // 170: benchmarks.google_message3.field17460:extendee -> benchmarks.google_message3.Message16945
+	80,  // 171: benchmarks.google_message3.field17466:extendee -> benchmarks.google_message3.Message16945
+	80,  // 172: benchmarks.google_message3.field17617:extendee -> benchmarks.google_message3.Message16945
+	80,  // 173: benchmarks.google_message3.field17618:extendee -> benchmarks.google_message3.Message16945
+	88,  // 174: benchmarks.google_message3.Message1327.field1373:extendee -> benchmarks.google_message3.Message0
+	88,  // 175: benchmarks.google_message3.Message3672.field3737:extendee -> benchmarks.google_message3.Message0
+	88,  // 176: benchmarks.google_message3.Message3804.field3825:extendee -> benchmarks.google_message3.Message0
+	88,  // 177: benchmarks.google_message3.Message6849.field6911:extendee -> benchmarks.google_message3.Message0
+	88,  // 178: benchmarks.google_message3.Message6866.field6974:extendee -> benchmarks.google_message3.Message0
+	88,  // 179: benchmarks.google_message3.Message6870.field6992:extendee -> benchmarks.google_message3.Message0
+	88,  // 180: benchmarks.google_message3.Message7651.field7730:extendee -> benchmarks.google_message3.Message0
+	88,  // 181: benchmarks.google_message3.Message7864.field7872:extendee -> benchmarks.google_message3.Message0
+	88,  // 182: benchmarks.google_message3.Message7929.field7962:extendee -> benchmarks.google_message3.Message0
+	88,  // 183: benchmarks.google_message3.Message8508.field8534:extendee -> benchmarks.google_message3.Message0
+	88,  // 184: benchmarks.google_message3.Message9122.field9134:extendee -> benchmarks.google_message3.Message0
+	88,  // 185: benchmarks.google_message3.Message10177.field10271:extendee -> benchmarks.google_message3.Message0
+	59,  // 186: benchmarks.google_message3.Message10278.field10289:extendee -> benchmarks.google_message3.Message10155
+	59,  // 187: benchmarks.google_message3.Message10323.field10361:extendee -> benchmarks.google_message3.Message10155
+	59,  // 188: benchmarks.google_message3.Message10324.field10364:extendee -> benchmarks.google_message3.Message10155
+	88,  // 189: benchmarks.google_message3.Message11990.field12031:extendee -> benchmarks.google_message3.Message0
+	88,  // 190: benchmarks.google_message3.Message12691.field12716:extendee -> benchmarks.google_message3.Message0
+	88,  // 191: benchmarks.google_message3.Message12870.field12899:extendee -> benchmarks.google_message3.Message0
+	89,  // 192: benchmarks.google_message3.Message13154.field13166:extendee -> benchmarks.google_message3.Message13145
+	88,  // 193: benchmarks.google_message3.Message16507.field16542:extendee -> benchmarks.google_message3.Message0
+	88,  // 194: benchmarks.google_message3.Message16564.field16569:extendee -> benchmarks.google_message3.Message0
+	88,  // 195: benchmarks.google_message3.Message16661.field16673:extendee -> benchmarks.google_message3.Message0
+	88,  // 196: benchmarks.google_message3.Message16746.field16810:extendee -> benchmarks.google_message3.Message0
+	88,  // 197: benchmarks.google_message3.Message17786.field18176:extendee -> benchmarks.google_message3.Message0
+	59,  // 198: benchmarks.google_message3.Message22857.field22875:extendee -> benchmarks.google_message3.Message10155
+	88,  // 199: benchmarks.google_message3.Message24404.field24685:extendee -> benchmarks.google_message3.Message0
+	88,  // 200: benchmarks.google_message3.Message27300.field27304:extendee -> benchmarks.google_message3.Message0
+	88,  // 201: benchmarks.google_message3.Message27453.field27482:extendee -> benchmarks.google_message3.Message0
+	88,  // 202: benchmarks.google_message3.field17031:type_name -> benchmarks.google_message3.Message0
+	88,  // 203: benchmarks.google_message3.field17032:type_name -> benchmarks.google_message3.Message0
+	88,  // 204: benchmarks.google_message3.field17038:type_name -> benchmarks.google_message3.Message0
+	88,  // 205: benchmarks.google_message3.field17039:type_name -> benchmarks.google_message3.Message0
+	88,  // 206: benchmarks.google_message3.field17042:type_name -> benchmarks.google_message3.Message0
+	88,  // 207: benchmarks.google_message3.field17052:type_name -> benchmarks.google_message3.Message0
+	88,  // 208: benchmarks.google_message3.field17053:type_name -> benchmarks.google_message3.Message0
+	88,  // 209: benchmarks.google_message3.field17060:type_name -> benchmarks.google_message3.Message0
+	88,  // 210: benchmarks.google_message3.field17076:type_name -> benchmarks.google_message3.Message0
+	88,  // 211: benchmarks.google_message3.field17082:type_name -> benchmarks.google_message3.Message0
+	88,  // 212: benchmarks.google_message3.field17091:type_name -> benchmarks.google_message3.Message0
+	88,  // 213: benchmarks.google_message3.field17098:type_name -> benchmarks.google_message3.Message0
+	88,  // 214: benchmarks.google_message3.field17101:type_name -> benchmarks.google_message3.Message0
+	88,  // 215: benchmarks.google_message3.field17172:type_name -> benchmarks.google_message3.Message0
+	88,  // 216: benchmarks.google_message3.field17175:type_name -> benchmarks.google_message3.Message0
+	88,  // 217: benchmarks.google_message3.field17178:type_name -> benchmarks.google_message3.Message0
+	88,  // 218: benchmarks.google_message3.field17185:type_name -> benchmarks.google_message3.Message0
+	88,  // 219: benchmarks.google_message3.field17238:type_name -> benchmarks.google_message3.Message0
+	88,  // 220: benchmarks.google_message3.field17289:type_name -> benchmarks.google_message3.Message0
+	88,  // 221: benchmarks.google_message3.field17290:type_name -> benchmarks.google_message3.Message0
+	88,  // 222: benchmarks.google_message3.field17296:type_name -> benchmarks.google_message3.Message0
+	88,  // 223: benchmarks.google_message3.field17301:type_name -> benchmarks.google_message3.Message0
+	88,  // 224: benchmarks.google_message3.field17412:type_name -> benchmarks.google_message3.Message0
+	88,  // 225: benchmarks.google_message3.field17438:type_name -> benchmarks.google_message3.Message0
+	88,  // 226: benchmarks.google_message3.field17458:type_name -> benchmarks.google_message3.Message0
+	88,  // 227: benchmarks.google_message3.field17617:type_name -> benchmarks.google_message3.Message0
+	1,   // 228: benchmarks.google_message3.Message1327.field1373:type_name -> benchmarks.google_message3.Message1327
+	2,   // 229: benchmarks.google_message3.Message3672.field3737:type_name -> benchmarks.google_message3.Message3672
+	3,   // 230: benchmarks.google_message3.Message3804.field3825:type_name -> benchmarks.google_message3.Message3804
+	4,   // 231: benchmarks.google_message3.Message6849.field6911:type_name -> benchmarks.google_message3.Message6849
+	5,   // 232: benchmarks.google_message3.Message6866.field6974:type_name -> benchmarks.google_message3.Message6866
+	6,   // 233: benchmarks.google_message3.Message6870.field6992:type_name -> benchmarks.google_message3.Message6870
+	7,   // 234: benchmarks.google_message3.Message7651.field7730:type_name -> benchmarks.google_message3.Message7651
+	8,   // 235: benchmarks.google_message3.Message7864.field7872:type_name -> benchmarks.google_message3.Message7864
+	9,   // 236: benchmarks.google_message3.Message7929.field7962:type_name -> benchmarks.google_message3.Message7929
+	10,  // 237: benchmarks.google_message3.Message8508.field8534:type_name -> benchmarks.google_message3.Message8508
+	11,  // 238: benchmarks.google_message3.Message9122.field9134:type_name -> benchmarks.google_message3.Message9122
+	12,  // 239: benchmarks.google_message3.Message10177.field10271:type_name -> benchmarks.google_message3.Message10177
+	13,  // 240: benchmarks.google_message3.Message10278.field10289:type_name -> benchmarks.google_message3.Message10278
+	14,  // 241: benchmarks.google_message3.Message10323.field10361:type_name -> benchmarks.google_message3.Message10323
+	15,  // 242: benchmarks.google_message3.Message10324.field10364:type_name -> benchmarks.google_message3.Message10324
+	16,  // 243: benchmarks.google_message3.Message11990.field12031:type_name -> benchmarks.google_message3.Message11990
+	17,  // 244: benchmarks.google_message3.Message12691.field12716:type_name -> benchmarks.google_message3.Message12691
+	18,  // 245: benchmarks.google_message3.Message12870.field12899:type_name -> benchmarks.google_message3.Message12870
+	19,  // 246: benchmarks.google_message3.Message13154.field13166:type_name -> benchmarks.google_message3.Message13154
+	20,  // 247: benchmarks.google_message3.Message16507.field16542:type_name -> benchmarks.google_message3.Message16507
+	21,  // 248: benchmarks.google_message3.Message16564.field16569:type_name -> benchmarks.google_message3.Message16564
+	22,  // 249: benchmarks.google_message3.Message16661.field16673:type_name -> benchmarks.google_message3.Message16661
+	23,  // 250: benchmarks.google_message3.Message16746.field16810:type_name -> benchmarks.google_message3.Message16746
+	24,  // 251: benchmarks.google_message3.Message17786.field18176:type_name -> benchmarks.google_message3.Message17786
+	25,  // 252: benchmarks.google_message3.Message22857.field22875:type_name -> benchmarks.google_message3.Message22857
+	26,  // 253: benchmarks.google_message3.Message24404.field24685:type_name -> benchmarks.google_message3.Message24404
+	27,  // 254: benchmarks.google_message3.Message27300.field27304:type_name -> benchmarks.google_message3.Message27300
+	28,  // 255: benchmarks.google_message3.Message27453.field27482:type_name -> benchmarks.google_message3.Message27453
+	256, // [256:256] is the sub-list for method output_type
+	256, // [256:256] is the sub-list for method input_type
+	202, // [202:256] is the sub-list for extension type_name
+	125, // [125:202] is the sub-list for extension extendee
+	0,   // [0:125] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_1.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_1.pb.go
index 11a9f6e..5501358 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_1.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_1.pb.go
@@ -7962,177 +7962,177 @@
 	(*Message3901)(nil),               // 119: benchmarks.google_message3.Message3901
 }
 var file_datasets_google_message3_benchmark_message3_1_proto_depIdxs = []int32{
-	59,  // benchmarks.google_message3.Message34390.field34452:type_name -> benchmarks.google_message3.Message34387
-	60,  // benchmarks.google_message3.Message34624.field34683:type_name -> benchmarks.google_message3.Message34621
-	60,  // benchmarks.google_message3.Message34624.field34684:type_name -> benchmarks.google_message3.Message34621
-	40,  // benchmarks.google_message3.Message34791.message34792:type_name -> benchmarks.google_message3.Message34791.Message34792
-	61,  // benchmarks.google_message3.Message35483.field35503:type_name -> benchmarks.google_message3.Message35476
-	62,  // benchmarks.google_message3.Message35483.field35504:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	63,  // benchmarks.google_message3.Message952.field963:type_name -> benchmarks.google_message3.Message949
-	64,  // benchmarks.google_message3.Message36876.field36980:type_name -> benchmarks.google_message3.Message2356
-	41,  // benchmarks.google_message3.Message36876.message36877:type_name -> benchmarks.google_message3.Message36876.Message36877
-	42,  // benchmarks.google_message3.Message36876.message36878:type_name -> benchmarks.google_message3.Message36876.Message36878
-	43,  // benchmarks.google_message3.Message36876.message36879:type_name -> benchmarks.google_message3.Message36876.Message36879
-	62,  // benchmarks.google_message3.Message36876.field36984:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	44,  // benchmarks.google_message3.Message36876.message36880:type_name -> benchmarks.google_message3.Message36876.Message36880
-	62,  // benchmarks.google_message3.Message36876.field36988:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	65,  // benchmarks.google_message3.Message36876.field36989:type_name -> benchmarks.google_message3.Message7029
-	66,  // benchmarks.google_message3.Message36876.field36990:type_name -> benchmarks.google_message3.Message35573
-	62,  // benchmarks.google_message3.Message36876.field36991:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message36876.field36992:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message36876.field36997:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message36876.field37000:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	45,  // benchmarks.google_message3.Message36876.message36881:type_name -> benchmarks.google_message3.Message36876.Message36881
-	67,  // benchmarks.google_message3.Message36876.field37002:type_name -> benchmarks.google_message3.Message4144
-	46,  // benchmarks.google_message3.Message36876.message36882:type_name -> benchmarks.google_message3.Message36876.Message36882
-	62,  // benchmarks.google_message3.Message36876.field37004:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	68,  // benchmarks.google_message3.Message36876.field37005:type_name -> benchmarks.google_message3.Message18921
-	69,  // benchmarks.google_message3.Message36876.field37006:type_name -> benchmarks.google_message3.Message36858
-	70,  // benchmarks.google_message3.Message36876.field37007:type_name -> benchmarks.google_message3.Message18831
-	62,  // benchmarks.google_message3.Message36876.field37008:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	71,  // benchmarks.google_message3.Message36876.field37009:type_name -> benchmarks.google_message3.Message18283
-	72,  // benchmarks.google_message3.Message36876.field37012:type_name -> benchmarks.google_message3.Message0
-	72,  // benchmarks.google_message3.Message36876.field37013:type_name -> benchmarks.google_message3.Message0
-	62,  // benchmarks.google_message3.Message36876.field37014:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	73,  // benchmarks.google_message3.Message36876.field37015:type_name -> benchmarks.google_message3.Message36869
-	47,  // benchmarks.google_message3.Message36876.message36883:type_name -> benchmarks.google_message3.Message36876.Message36883
-	48,  // benchmarks.google_message3.Message36876.message36884:type_name -> benchmarks.google_message3.Message36876.Message36884
-	49,  // benchmarks.google_message3.Message36876.message36885:type_name -> benchmarks.google_message3.Message36876.Message36885
-	50,  // benchmarks.google_message3.Message36876.message36886:type_name -> benchmarks.google_message3.Message36876.Message36886
-	74,  // benchmarks.google_message3.Message36876.field37020:type_name -> benchmarks.google_message3.UnusedEnum
-	62,  // benchmarks.google_message3.Message36876.field37022:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	75,  // benchmarks.google_message3.Message36876.field37023:type_name -> benchmarks.google_message3.Message13090
-	51,  // benchmarks.google_message3.Message36876.message36887:type_name -> benchmarks.google_message3.Message36876.Message36887
-	76,  // benchmarks.google_message3.Message36876.field37025:type_name -> benchmarks.google_message3.Message10155
-	77,  // benchmarks.google_message3.Message36876.field37026:type_name -> benchmarks.google_message3.Message11874
-	62,  // benchmarks.google_message3.Message36876.field37029:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	78,  // benchmarks.google_message3.Message36876.field37030:type_name -> benchmarks.google_message3.Message35546
-	52,  // benchmarks.google_message3.Message36876.message36888:type_name -> benchmarks.google_message3.Message36876.Message36888
-	79,  // benchmarks.google_message3.Message36876.field37032:type_name -> benchmarks.google_message3.Message19255
-	80,  // benchmarks.google_message3.Message36876.field37033:type_name -> benchmarks.google_message3.Message33968
-	62,  // benchmarks.google_message3.Message36876.field37035:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	81,  // benchmarks.google_message3.Message36876.field37036:type_name -> benchmarks.google_message3.Message6644
-	53,  // benchmarks.google_message3.Message36876.message36889:type_name -> benchmarks.google_message3.Message36876.Message36889
-	54,  // benchmarks.google_message3.Message36876.message36910:type_name -> benchmarks.google_message3.Message36876.Message36910
-	55,  // benchmarks.google_message3.Message36876.message36911:type_name -> benchmarks.google_message3.Message36876.Message36911
-	56,  // benchmarks.google_message3.Message36876.message36912:type_name -> benchmarks.google_message3.Message36876.Message36912
-	62,  // benchmarks.google_message3.Message36876.field37042:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	82,  // benchmarks.google_message3.Message6863.field6931:type_name -> benchmarks.google_message3.Enum6858
-	82,  // benchmarks.google_message3.Message6863.field6932:type_name -> benchmarks.google_message3.Enum6858
-	74,  // benchmarks.google_message3.Message6863.field6933:type_name -> benchmarks.google_message3.UnusedEnum
-	83,  // benchmarks.google_message3.Message6863.field6935:type_name -> benchmarks.google_message3.Message6773
-	84,  // benchmarks.google_message3.Message6863.field6938:type_name -> benchmarks.google_message3.Enum6815
-	85,  // benchmarks.google_message3.Message6863.field6941:type_name -> benchmarks.google_message3.Enum6822
-	62,  // benchmarks.google_message3.Message6863.field6950:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message6863.field6955:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message6863.field6956:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	86,  // benchmarks.google_message3.Message6863.field6957:type_name -> benchmarks.google_message3.Message3886
-	87,  // benchmarks.google_message3.Message6863.field6960:type_name -> benchmarks.google_message3.Message6743
-	62,  // benchmarks.google_message3.Message6863.field6961:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message6863.field6962:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	74,  // benchmarks.google_message3.Message7921.field7939:type_name -> benchmarks.google_message3.UnusedEnum
-	88,  // benchmarks.google_message3.Message8511.field8539:type_name -> benchmarks.google_message3.Message8224
-	89,  // benchmarks.google_message3.Message8512.field8544:type_name -> benchmarks.google_message3.Message8301
-	90,  // benchmarks.google_message3.Message8512.field8545:type_name -> benchmarks.google_message3.Message8302
-	91,  // benchmarks.google_message3.Message8513.field8550:type_name -> benchmarks.google_message3.Message8392
-	92,  // benchmarks.google_message3.Message8514.field8557:type_name -> benchmarks.google_message3.Message8130
-	93,  // benchmarks.google_message3.Message8515.field8559:type_name -> benchmarks.google_message3.Message8479
-	94,  // benchmarks.google_message3.Message8515.field8560:type_name -> benchmarks.google_message3.Message8478
-	95,  // benchmarks.google_message3.Message10320.field10347:type_name -> benchmarks.google_message3.Enum10335
-	96,  // benchmarks.google_message3.Message10320.field10348:type_name -> benchmarks.google_message3.Message10319
-	97,  // benchmarks.google_message3.Message10320.field10353:type_name -> benchmarks.google_message3.Enum10337
-	98,  // benchmarks.google_message3.Message10322.field10357:type_name -> benchmarks.google_message3.Message4016
-	62,  // benchmarks.google_message3.Message11988.field12023:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	76,  // benchmarks.google_message3.Message11988.field12024:type_name -> benchmarks.google_message3.Message10155
-	99,  // benchmarks.google_message3.Message12668.field12677:type_name -> benchmarks.google_message3.Message12669
-	100, // benchmarks.google_message3.Message12825.field12862:type_name -> benchmarks.google_message3.Message12818
-	101, // benchmarks.google_message3.Message12825.field12864:type_name -> benchmarks.google_message3.Message12819
-	102, // benchmarks.google_message3.Message12825.field12865:type_name -> benchmarks.google_message3.Message12820
-	103, // benchmarks.google_message3.Message12825.field12867:type_name -> benchmarks.google_message3.Message12821
-	62,  // benchmarks.google_message3.Message12825.field12868:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	104, // benchmarks.google_message3.Message16478.field16481:type_name -> benchmarks.google_message3.Message16479
-	105, // benchmarks.google_message3.Message16552.field16567:type_name -> benchmarks.google_message3.Enum16553
-	106, // benchmarks.google_message3.Message16727.field16782:type_name -> benchmarks.google_message3.Enum16728
-	107, // benchmarks.google_message3.Message16727.field16789:type_name -> benchmarks.google_message3.Enum16732
-	108, // benchmarks.google_message3.Message16727.field16793:type_name -> benchmarks.google_message3.Enum16738
-	109, // benchmarks.google_message3.Message16727.field16795:type_name -> benchmarks.google_message3.Message16722
-	110, // benchmarks.google_message3.Message16727.field16802:type_name -> benchmarks.google_message3.Enum16698
-	111, // benchmarks.google_message3.Message16727.field16803:type_name -> benchmarks.google_message3.Message16724
-	62,  // benchmarks.google_message3.Message16727.field16805:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	106, // benchmarks.google_message3.Message16725.field16774:type_name -> benchmarks.google_message3.Enum16728
-	62,  // benchmarks.google_message3.Message17726.field17812:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	112, // benchmarks.google_message3.Message17726.field17820:type_name -> benchmarks.google_message3.Message17728
-	112, // benchmarks.google_message3.Message17726.field17821:type_name -> benchmarks.google_message3.Message17728
-	62,  // benchmarks.google_message3.Message17726.field17822:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	57,  // benchmarks.google_message3.Message17783.message17784:type_name -> benchmarks.google_message3.Message17783.Message17784
-	58,  // benchmarks.google_message3.Message17783.message17785:type_name -> benchmarks.google_message3.Message17783.Message17785
-	62,  // benchmarks.google_message3.Message16945.field16951:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	72,  // benchmarks.google_message3.Message16945.field16952:type_name -> benchmarks.google_message3.Message0
-	62,  // benchmarks.google_message3.Message16945.field16953:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	72,  // benchmarks.google_message3.Message16945.field16954:type_name -> benchmarks.google_message3.Message0
-	62,  // benchmarks.google_message3.Message16945.field16960:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	72,  // benchmarks.google_message3.Message16945.field16961:type_name -> benchmarks.google_message3.Message0
-	72,  // benchmarks.google_message3.Message16945.field16962:type_name -> benchmarks.google_message3.Message0
-	62,  // benchmarks.google_message3.Message16945.field16963:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16965:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16967:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	72,  // benchmarks.google_message3.Message16945.field16969:type_name -> benchmarks.google_message3.Message0
-	62,  // benchmarks.google_message3.Message16945.field16973:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16974:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	72,  // benchmarks.google_message3.Message16945.field16977:type_name -> benchmarks.google_message3.Message0
-	62,  // benchmarks.google_message3.Message16945.field16978:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16979:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16981:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16983:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16985:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16990:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field16994:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17002:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17003:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17004:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17005:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17006:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17007:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17008:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17009:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	72,  // benchmarks.google_message3.Message16945.field17010:type_name -> benchmarks.google_message3.Message0
-	62,  // benchmarks.google_message3.Message16945.field17012:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message16945.field17014:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	72,  // benchmarks.google_message3.Message16945.field17015:type_name -> benchmarks.google_message3.Message0
-	72,  // benchmarks.google_message3.Message16945.field17023:type_name -> benchmarks.google_message3.Message0
-	62,  // benchmarks.google_message3.Message36876.Message36889.field37101:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	113, // benchmarks.google_message3.Message36876.Message36889.field37102:type_name -> benchmarks.google_message3.Message13174
-	114, // benchmarks.google_message3.Message36876.Message36889.field37103:type_name -> benchmarks.google_message3.Message13169
-	115, // benchmarks.google_message3.Message36876.Message36889.field37105:type_name -> benchmarks.google_message3.Enum36890
-	62,  // benchmarks.google_message3.Message36876.Message36889.field37108:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message36876.Message36889.field37113:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message36876.Message36889.field37115:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	74,  // benchmarks.google_message3.Message36876.Message36889.field37116:type_name -> benchmarks.google_message3.UnusedEnum
-	74,  // benchmarks.google_message3.Message36876.Message36889.field37117:type_name -> benchmarks.google_message3.UnusedEnum
-	62,  // benchmarks.google_message3.Message36876.Message36911.field37121:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	116, // benchmarks.google_message3.Message36876.Message36911.field37122:type_name -> benchmarks.google_message3.Message35538
-	117, // benchmarks.google_message3.Message36876.Message36911.field37123:type_name -> benchmarks.google_message3.Message35540
-	118, // benchmarks.google_message3.Message36876.Message36911.field37124:type_name -> benchmarks.google_message3.Message35542
-	119, // benchmarks.google_message3.Message36876.Message36912.field37125:type_name -> benchmarks.google_message3.Message3901
-	119, // benchmarks.google_message3.Message36876.Message36912.field37126:type_name -> benchmarks.google_message3.Message3901
-	38,  // benchmarks.google_message3.Message17783.Message17785.field18170:type_name -> benchmarks.google_message3.Message17783
-	72,  // benchmarks.google_message3.Message34390.field34453:extendee -> benchmarks.google_message3.Message0
-	72,  // benchmarks.google_message3.Message34624.field34685:extendee -> benchmarks.google_message3.Message0
-	72,  // benchmarks.google_message3.Message34791.field34807:extendee -> benchmarks.google_message3.Message0
-	72,  // benchmarks.google_message3.Message35483.field35505:extendee -> benchmarks.google_message3.Message0
-	72,  // benchmarks.google_message3.Message35807.field35818:extendee -> benchmarks.google_message3.Message0
-	72,  // benchmarks.google_message3.Message16945.field17025:extendee -> benchmarks.google_message3.Message0
-	0,   // benchmarks.google_message3.Message34390.field34453:type_name -> benchmarks.google_message3.Message34390
-	1,   // benchmarks.google_message3.Message34624.field34685:type_name -> benchmarks.google_message3.Message34624
-	2,   // benchmarks.google_message3.Message34791.field34807:type_name -> benchmarks.google_message3.Message34791
-	3,   // benchmarks.google_message3.Message35483.field35505:type_name -> benchmarks.google_message3.Message35483
-	4,   // benchmarks.google_message3.Message35807.field35818:type_name -> benchmarks.google_message3.Message35807
-	39,  // benchmarks.google_message3.Message16945.field17025:type_name -> benchmarks.google_message3.Message16945
-	166, // starting offset of method output_type sub-list
-	166, // starting offset of method input_type sub-list
-	160, // starting offset of extension type_name sub-list
-	154, // starting offset of extension extendee sub-list
-	0,   // starting offset of field type_name sub-list
+	59,  // 0: benchmarks.google_message3.Message34390.field34452:type_name -> benchmarks.google_message3.Message34387
+	60,  // 1: benchmarks.google_message3.Message34624.field34683:type_name -> benchmarks.google_message3.Message34621
+	60,  // 2: benchmarks.google_message3.Message34624.field34684:type_name -> benchmarks.google_message3.Message34621
+	40,  // 3: benchmarks.google_message3.Message34791.message34792:type_name -> benchmarks.google_message3.Message34791.Message34792
+	61,  // 4: benchmarks.google_message3.Message35483.field35503:type_name -> benchmarks.google_message3.Message35476
+	62,  // 5: benchmarks.google_message3.Message35483.field35504:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	63,  // 6: benchmarks.google_message3.Message952.field963:type_name -> benchmarks.google_message3.Message949
+	64,  // 7: benchmarks.google_message3.Message36876.field36980:type_name -> benchmarks.google_message3.Message2356
+	41,  // 8: benchmarks.google_message3.Message36876.message36877:type_name -> benchmarks.google_message3.Message36876.Message36877
+	42,  // 9: benchmarks.google_message3.Message36876.message36878:type_name -> benchmarks.google_message3.Message36876.Message36878
+	43,  // 10: benchmarks.google_message3.Message36876.message36879:type_name -> benchmarks.google_message3.Message36876.Message36879
+	62,  // 11: benchmarks.google_message3.Message36876.field36984:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	44,  // 12: benchmarks.google_message3.Message36876.message36880:type_name -> benchmarks.google_message3.Message36876.Message36880
+	62,  // 13: benchmarks.google_message3.Message36876.field36988:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	65,  // 14: benchmarks.google_message3.Message36876.field36989:type_name -> benchmarks.google_message3.Message7029
+	66,  // 15: benchmarks.google_message3.Message36876.field36990:type_name -> benchmarks.google_message3.Message35573
+	62,  // 16: benchmarks.google_message3.Message36876.field36991:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 17: benchmarks.google_message3.Message36876.field36992:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 18: benchmarks.google_message3.Message36876.field36997:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 19: benchmarks.google_message3.Message36876.field37000:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	45,  // 20: benchmarks.google_message3.Message36876.message36881:type_name -> benchmarks.google_message3.Message36876.Message36881
+	67,  // 21: benchmarks.google_message3.Message36876.field37002:type_name -> benchmarks.google_message3.Message4144
+	46,  // 22: benchmarks.google_message3.Message36876.message36882:type_name -> benchmarks.google_message3.Message36876.Message36882
+	62,  // 23: benchmarks.google_message3.Message36876.field37004:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	68,  // 24: benchmarks.google_message3.Message36876.field37005:type_name -> benchmarks.google_message3.Message18921
+	69,  // 25: benchmarks.google_message3.Message36876.field37006:type_name -> benchmarks.google_message3.Message36858
+	70,  // 26: benchmarks.google_message3.Message36876.field37007:type_name -> benchmarks.google_message3.Message18831
+	62,  // 27: benchmarks.google_message3.Message36876.field37008:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	71,  // 28: benchmarks.google_message3.Message36876.field37009:type_name -> benchmarks.google_message3.Message18283
+	72,  // 29: benchmarks.google_message3.Message36876.field37012:type_name -> benchmarks.google_message3.Message0
+	72,  // 30: benchmarks.google_message3.Message36876.field37013:type_name -> benchmarks.google_message3.Message0
+	62,  // 31: benchmarks.google_message3.Message36876.field37014:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	73,  // 32: benchmarks.google_message3.Message36876.field37015:type_name -> benchmarks.google_message3.Message36869
+	47,  // 33: benchmarks.google_message3.Message36876.message36883:type_name -> benchmarks.google_message3.Message36876.Message36883
+	48,  // 34: benchmarks.google_message3.Message36876.message36884:type_name -> benchmarks.google_message3.Message36876.Message36884
+	49,  // 35: benchmarks.google_message3.Message36876.message36885:type_name -> benchmarks.google_message3.Message36876.Message36885
+	50,  // 36: benchmarks.google_message3.Message36876.message36886:type_name -> benchmarks.google_message3.Message36876.Message36886
+	74,  // 37: benchmarks.google_message3.Message36876.field37020:type_name -> benchmarks.google_message3.UnusedEnum
+	62,  // 38: benchmarks.google_message3.Message36876.field37022:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	75,  // 39: benchmarks.google_message3.Message36876.field37023:type_name -> benchmarks.google_message3.Message13090
+	51,  // 40: benchmarks.google_message3.Message36876.message36887:type_name -> benchmarks.google_message3.Message36876.Message36887
+	76,  // 41: benchmarks.google_message3.Message36876.field37025:type_name -> benchmarks.google_message3.Message10155
+	77,  // 42: benchmarks.google_message3.Message36876.field37026:type_name -> benchmarks.google_message3.Message11874
+	62,  // 43: benchmarks.google_message3.Message36876.field37029:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	78,  // 44: benchmarks.google_message3.Message36876.field37030:type_name -> benchmarks.google_message3.Message35546
+	52,  // 45: benchmarks.google_message3.Message36876.message36888:type_name -> benchmarks.google_message3.Message36876.Message36888
+	79,  // 46: benchmarks.google_message3.Message36876.field37032:type_name -> benchmarks.google_message3.Message19255
+	80,  // 47: benchmarks.google_message3.Message36876.field37033:type_name -> benchmarks.google_message3.Message33968
+	62,  // 48: benchmarks.google_message3.Message36876.field37035:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	81,  // 49: benchmarks.google_message3.Message36876.field37036:type_name -> benchmarks.google_message3.Message6644
+	53,  // 50: benchmarks.google_message3.Message36876.message36889:type_name -> benchmarks.google_message3.Message36876.Message36889
+	54,  // 51: benchmarks.google_message3.Message36876.message36910:type_name -> benchmarks.google_message3.Message36876.Message36910
+	55,  // 52: benchmarks.google_message3.Message36876.message36911:type_name -> benchmarks.google_message3.Message36876.Message36911
+	56,  // 53: benchmarks.google_message3.Message36876.message36912:type_name -> benchmarks.google_message3.Message36876.Message36912
+	62,  // 54: benchmarks.google_message3.Message36876.field37042:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	82,  // 55: benchmarks.google_message3.Message6863.field6931:type_name -> benchmarks.google_message3.Enum6858
+	82,  // 56: benchmarks.google_message3.Message6863.field6932:type_name -> benchmarks.google_message3.Enum6858
+	74,  // 57: benchmarks.google_message3.Message6863.field6933:type_name -> benchmarks.google_message3.UnusedEnum
+	83,  // 58: benchmarks.google_message3.Message6863.field6935:type_name -> benchmarks.google_message3.Message6773
+	84,  // 59: benchmarks.google_message3.Message6863.field6938:type_name -> benchmarks.google_message3.Enum6815
+	85,  // 60: benchmarks.google_message3.Message6863.field6941:type_name -> benchmarks.google_message3.Enum6822
+	62,  // 61: benchmarks.google_message3.Message6863.field6950:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 62: benchmarks.google_message3.Message6863.field6955:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 63: benchmarks.google_message3.Message6863.field6956:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	86,  // 64: benchmarks.google_message3.Message6863.field6957:type_name -> benchmarks.google_message3.Message3886
+	87,  // 65: benchmarks.google_message3.Message6863.field6960:type_name -> benchmarks.google_message3.Message6743
+	62,  // 66: benchmarks.google_message3.Message6863.field6961:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 67: benchmarks.google_message3.Message6863.field6962:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	74,  // 68: benchmarks.google_message3.Message7921.field7939:type_name -> benchmarks.google_message3.UnusedEnum
+	88,  // 69: benchmarks.google_message3.Message8511.field8539:type_name -> benchmarks.google_message3.Message8224
+	89,  // 70: benchmarks.google_message3.Message8512.field8544:type_name -> benchmarks.google_message3.Message8301
+	90,  // 71: benchmarks.google_message3.Message8512.field8545:type_name -> benchmarks.google_message3.Message8302
+	91,  // 72: benchmarks.google_message3.Message8513.field8550:type_name -> benchmarks.google_message3.Message8392
+	92,  // 73: benchmarks.google_message3.Message8514.field8557:type_name -> benchmarks.google_message3.Message8130
+	93,  // 74: benchmarks.google_message3.Message8515.field8559:type_name -> benchmarks.google_message3.Message8479
+	94,  // 75: benchmarks.google_message3.Message8515.field8560:type_name -> benchmarks.google_message3.Message8478
+	95,  // 76: benchmarks.google_message3.Message10320.field10347:type_name -> benchmarks.google_message3.Enum10335
+	96,  // 77: benchmarks.google_message3.Message10320.field10348:type_name -> benchmarks.google_message3.Message10319
+	97,  // 78: benchmarks.google_message3.Message10320.field10353:type_name -> benchmarks.google_message3.Enum10337
+	98,  // 79: benchmarks.google_message3.Message10322.field10357:type_name -> benchmarks.google_message3.Message4016
+	62,  // 80: benchmarks.google_message3.Message11988.field12023:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	76,  // 81: benchmarks.google_message3.Message11988.field12024:type_name -> benchmarks.google_message3.Message10155
+	99,  // 82: benchmarks.google_message3.Message12668.field12677:type_name -> benchmarks.google_message3.Message12669
+	100, // 83: benchmarks.google_message3.Message12825.field12862:type_name -> benchmarks.google_message3.Message12818
+	101, // 84: benchmarks.google_message3.Message12825.field12864:type_name -> benchmarks.google_message3.Message12819
+	102, // 85: benchmarks.google_message3.Message12825.field12865:type_name -> benchmarks.google_message3.Message12820
+	103, // 86: benchmarks.google_message3.Message12825.field12867:type_name -> benchmarks.google_message3.Message12821
+	62,  // 87: benchmarks.google_message3.Message12825.field12868:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	104, // 88: benchmarks.google_message3.Message16478.field16481:type_name -> benchmarks.google_message3.Message16479
+	105, // 89: benchmarks.google_message3.Message16552.field16567:type_name -> benchmarks.google_message3.Enum16553
+	106, // 90: benchmarks.google_message3.Message16727.field16782:type_name -> benchmarks.google_message3.Enum16728
+	107, // 91: benchmarks.google_message3.Message16727.field16789:type_name -> benchmarks.google_message3.Enum16732
+	108, // 92: benchmarks.google_message3.Message16727.field16793:type_name -> benchmarks.google_message3.Enum16738
+	109, // 93: benchmarks.google_message3.Message16727.field16795:type_name -> benchmarks.google_message3.Message16722
+	110, // 94: benchmarks.google_message3.Message16727.field16802:type_name -> benchmarks.google_message3.Enum16698
+	111, // 95: benchmarks.google_message3.Message16727.field16803:type_name -> benchmarks.google_message3.Message16724
+	62,  // 96: benchmarks.google_message3.Message16727.field16805:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	106, // 97: benchmarks.google_message3.Message16725.field16774:type_name -> benchmarks.google_message3.Enum16728
+	62,  // 98: benchmarks.google_message3.Message17726.field17812:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	112, // 99: benchmarks.google_message3.Message17726.field17820:type_name -> benchmarks.google_message3.Message17728
+	112, // 100: benchmarks.google_message3.Message17726.field17821:type_name -> benchmarks.google_message3.Message17728
+	62,  // 101: benchmarks.google_message3.Message17726.field17822:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	57,  // 102: benchmarks.google_message3.Message17783.message17784:type_name -> benchmarks.google_message3.Message17783.Message17784
+	58,  // 103: benchmarks.google_message3.Message17783.message17785:type_name -> benchmarks.google_message3.Message17783.Message17785
+	62,  // 104: benchmarks.google_message3.Message16945.field16951:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	72,  // 105: benchmarks.google_message3.Message16945.field16952:type_name -> benchmarks.google_message3.Message0
+	62,  // 106: benchmarks.google_message3.Message16945.field16953:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	72,  // 107: benchmarks.google_message3.Message16945.field16954:type_name -> benchmarks.google_message3.Message0
+	62,  // 108: benchmarks.google_message3.Message16945.field16960:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	72,  // 109: benchmarks.google_message3.Message16945.field16961:type_name -> benchmarks.google_message3.Message0
+	72,  // 110: benchmarks.google_message3.Message16945.field16962:type_name -> benchmarks.google_message3.Message0
+	62,  // 111: benchmarks.google_message3.Message16945.field16963:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 112: benchmarks.google_message3.Message16945.field16965:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 113: benchmarks.google_message3.Message16945.field16967:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	72,  // 114: benchmarks.google_message3.Message16945.field16969:type_name -> benchmarks.google_message3.Message0
+	62,  // 115: benchmarks.google_message3.Message16945.field16973:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 116: benchmarks.google_message3.Message16945.field16974:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	72,  // 117: benchmarks.google_message3.Message16945.field16977:type_name -> benchmarks.google_message3.Message0
+	62,  // 118: benchmarks.google_message3.Message16945.field16978:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 119: benchmarks.google_message3.Message16945.field16979:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 120: benchmarks.google_message3.Message16945.field16981:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 121: benchmarks.google_message3.Message16945.field16983:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 122: benchmarks.google_message3.Message16945.field16985:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 123: benchmarks.google_message3.Message16945.field16990:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 124: benchmarks.google_message3.Message16945.field16994:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 125: benchmarks.google_message3.Message16945.field17002:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 126: benchmarks.google_message3.Message16945.field17003:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 127: benchmarks.google_message3.Message16945.field17004:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 128: benchmarks.google_message3.Message16945.field17005:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 129: benchmarks.google_message3.Message16945.field17006:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 130: benchmarks.google_message3.Message16945.field17007:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 131: benchmarks.google_message3.Message16945.field17008:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 132: benchmarks.google_message3.Message16945.field17009:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	72,  // 133: benchmarks.google_message3.Message16945.field17010:type_name -> benchmarks.google_message3.Message0
+	62,  // 134: benchmarks.google_message3.Message16945.field17012:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 135: benchmarks.google_message3.Message16945.field17014:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	72,  // 136: benchmarks.google_message3.Message16945.field17015:type_name -> benchmarks.google_message3.Message0
+	72,  // 137: benchmarks.google_message3.Message16945.field17023:type_name -> benchmarks.google_message3.Message0
+	62,  // 138: benchmarks.google_message3.Message36876.Message36889.field37101:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	113, // 139: benchmarks.google_message3.Message36876.Message36889.field37102:type_name -> benchmarks.google_message3.Message13174
+	114, // 140: benchmarks.google_message3.Message36876.Message36889.field37103:type_name -> benchmarks.google_message3.Message13169
+	115, // 141: benchmarks.google_message3.Message36876.Message36889.field37105:type_name -> benchmarks.google_message3.Enum36890
+	62,  // 142: benchmarks.google_message3.Message36876.Message36889.field37108:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 143: benchmarks.google_message3.Message36876.Message36889.field37113:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 144: benchmarks.google_message3.Message36876.Message36889.field37115:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	74,  // 145: benchmarks.google_message3.Message36876.Message36889.field37116:type_name -> benchmarks.google_message3.UnusedEnum
+	74,  // 146: benchmarks.google_message3.Message36876.Message36889.field37117:type_name -> benchmarks.google_message3.UnusedEnum
+	62,  // 147: benchmarks.google_message3.Message36876.Message36911.field37121:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	116, // 148: benchmarks.google_message3.Message36876.Message36911.field37122:type_name -> benchmarks.google_message3.Message35538
+	117, // 149: benchmarks.google_message3.Message36876.Message36911.field37123:type_name -> benchmarks.google_message3.Message35540
+	118, // 150: benchmarks.google_message3.Message36876.Message36911.field37124:type_name -> benchmarks.google_message3.Message35542
+	119, // 151: benchmarks.google_message3.Message36876.Message36912.field37125:type_name -> benchmarks.google_message3.Message3901
+	119, // 152: benchmarks.google_message3.Message36876.Message36912.field37126:type_name -> benchmarks.google_message3.Message3901
+	38,  // 153: benchmarks.google_message3.Message17783.Message17785.field18170:type_name -> benchmarks.google_message3.Message17783
+	72,  // 154: benchmarks.google_message3.Message34390.field34453:extendee -> benchmarks.google_message3.Message0
+	72,  // 155: benchmarks.google_message3.Message34624.field34685:extendee -> benchmarks.google_message3.Message0
+	72,  // 156: benchmarks.google_message3.Message34791.field34807:extendee -> benchmarks.google_message3.Message0
+	72,  // 157: benchmarks.google_message3.Message35483.field35505:extendee -> benchmarks.google_message3.Message0
+	72,  // 158: benchmarks.google_message3.Message35807.field35818:extendee -> benchmarks.google_message3.Message0
+	72,  // 159: benchmarks.google_message3.Message16945.field17025:extendee -> benchmarks.google_message3.Message0
+	0,   // 160: benchmarks.google_message3.Message34390.field34453:type_name -> benchmarks.google_message3.Message34390
+	1,   // 161: benchmarks.google_message3.Message34624.field34685:type_name -> benchmarks.google_message3.Message34624
+	2,   // 162: benchmarks.google_message3.Message34791.field34807:type_name -> benchmarks.google_message3.Message34791
+	3,   // 163: benchmarks.google_message3.Message35483.field35505:type_name -> benchmarks.google_message3.Message35483
+	4,   // 164: benchmarks.google_message3.Message35807.field35818:type_name -> benchmarks.google_message3.Message35807
+	39,  // 165: benchmarks.google_message3.Message16945.field17025:type_name -> benchmarks.google_message3.Message16945
+	166, // [166:166] is the sub-list for method output_type
+	166, // [166:166] is the sub-list for method input_type
+	160, // [160:166] is the sub-list for extension type_name
+	154, // [154:160] is the sub-list for extension extendee
+	0,   // [0:154] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_1_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_2.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_2.pb.go
index ba58265..2c9e1cf 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_2.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_2.pb.go
@@ -5594,121 +5594,121 @@
 	(Enum36860)(0),                                 // 71: benchmarks.google_message3.Enum36860
 }
 var file_datasets_google_message3_benchmark_message3_2_proto_depIdxs = []int32{
-	34,  // benchmarks.google_message3.Message22853.field22869:type_name -> benchmarks.google_message3.Enum22854
-	35,  // benchmarks.google_message3.Message22853.field22873:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	36,  // benchmarks.google_message3.Message24345.field24534:type_name -> benchmarks.google_message3.UnusedEnum
-	37,  // benchmarks.google_message3.Message24345.field24535:type_name -> benchmarks.google_message3.Message24346
-	36,  // benchmarks.google_message3.Message24345.field24538:type_name -> benchmarks.google_message3.UnusedEnum
-	38,  // benchmarks.google_message3.Message24345.field24543:type_name -> benchmarks.google_message3.Message24316
-	39,  // benchmarks.google_message3.Message24345.field24544:type_name -> benchmarks.google_message3.Message24376
-	35,  // benchmarks.google_message3.Message24345.field24549:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message24345.field24550:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	40,  // benchmarks.google_message3.Message24345.field24554:type_name -> benchmarks.google_message3.Message24379
-	41,  // benchmarks.google_message3.Message24345.field24556:type_name -> benchmarks.google_message3.Message24356
-	42,  // benchmarks.google_message3.Message24345.field24557:type_name -> benchmarks.google_message3.Message24366
-	43,  // benchmarks.google_message3.Message24403.field24681:type_name -> benchmarks.google_message3.Message24401
-	44,  // benchmarks.google_message3.Message24403.field24682:type_name -> benchmarks.google_message3.Message24402
-	35,  // benchmarks.google_message3.Message24391.field24638:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	40,  // benchmarks.google_message3.Message24391.field24644:type_name -> benchmarks.google_message3.Message24379
-	35,  // benchmarks.google_message3.Message24391.field24645:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message24391.field24646:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message24391.field24647:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message24391.field24648:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message24391.field24649:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message24391.field24650:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	45,  // benchmarks.google_message3.Message27360.field27426:type_name -> benchmarks.google_message3.Message27358
-	46,  // benchmarks.google_message3.Message27360.field27427:type_name -> benchmarks.google_message3.Enum27361
-	45,  // benchmarks.google_message3.Message27360.field27428:type_name -> benchmarks.google_message3.Message27358
-	35,  // benchmarks.google_message3.Message27360.field27429:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	47,  // benchmarks.google_message3.Message34387.field34447:type_name -> benchmarks.google_message3.Message34381
-	36,  // benchmarks.google_message3.Message34387.field34448:type_name -> benchmarks.google_message3.UnusedEnum
-	48,  // benchmarks.google_message3.Message34387.field34449:type_name -> benchmarks.google_message3.Enum34388
-	35,  // benchmarks.google_message3.Message34621.field34656:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	49,  // benchmarks.google_message3.Message34621.field34657:type_name -> benchmarks.google_message3.Message34619
-	35,  // benchmarks.google_message3.Message34621.field34665:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	8,   // benchmarks.google_message3.Message34621.field34666:type_name -> benchmarks.google_message3.Message34621
-	35,  // benchmarks.google_message3.Message34621.field34667:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message34621.field34668:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	50,  // benchmarks.google_message3.Message35476.field35487:type_name -> benchmarks.google_message3.Enum35477
-	35,  // benchmarks.google_message3.Message35476.field35492:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	51,  // benchmarks.google_message3.Message949.field958:type_name -> benchmarks.google_message3.Message730
-	26,  // benchmarks.google_message3.Message33968.message33969:type_name -> benchmarks.google_message3.Message33968.Message33969
-	52,  // benchmarks.google_message3.Message33968.field33989:type_name -> benchmarks.google_message3.Message33958
-	35,  // benchmarks.google_message3.Message33968.field33990:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	36,  // benchmarks.google_message3.Message33968.field33992:type_name -> benchmarks.google_message3.UnusedEnum
-	35,  // benchmarks.google_message3.Message6644.field6701:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message6644.field6704:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	53,  // benchmarks.google_message3.Message6644.field6707:type_name -> benchmarks.google_message3.Message6637
-	54,  // benchmarks.google_message3.Message6644.field6708:type_name -> benchmarks.google_message3.Message6126
-	55,  // benchmarks.google_message3.Message6644.field6710:type_name -> benchmarks.google_message3.Message6643
-	35,  // benchmarks.google_message3.Message6644.field6712:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message6644.field6713:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message6644.field6714:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message6644.field6716:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	27,  // benchmarks.google_message3.Message18831.message18832:type_name -> benchmarks.google_message3.Message18831.Message18832
-	56,  // benchmarks.google_message3.Message13090.field13141:type_name -> benchmarks.google_message3.Message13083
-	57,  // benchmarks.google_message3.Message13090.field13142:type_name -> benchmarks.google_message3.Message13088
-	58,  // benchmarks.google_message3.Message11874.field11888:type_name -> benchmarks.google_message3.Message10391
-	59,  // benchmarks.google_message3.Message11874.field11890:type_name -> benchmarks.google_message3.Message11873
-	29,  // benchmarks.google_message3.Message4144.message4145:type_name -> benchmarks.google_message3.Message4144.Message4145
-	30,  // benchmarks.google_message3.Message35573.message35574:type_name -> benchmarks.google_message3.Message35573.Message35574
-	31,  // benchmarks.google_message3.Message35573.message35575:type_name -> benchmarks.google_message3.Message35573.Message35575
-	60,  // benchmarks.google_message3.Message36858.field36966:type_name -> benchmarks.google_message3.Message35506
-	33,  // benchmarks.google_message3.Message36858.message36859:type_name -> benchmarks.google_message3.Message36858.Message36859
-	61,  // benchmarks.google_message3.Message13174.field13249:type_name -> benchmarks.google_message3.Message13151
-	35,  // benchmarks.google_message3.Message18283.field18478:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18500:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18501:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18502:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62,  // benchmarks.google_message3.Message18283.field18503:type_name -> benchmarks.google_message3.Message18253
-	35,  // benchmarks.google_message3.Message18283.field18504:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18505:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18506:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18512:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18519:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18522:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18523:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18524:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18525:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18526:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18529:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18530:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18531:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18538:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	63,  // benchmarks.google_message3.Message18283.field18541:type_name -> benchmarks.google_message3.Message16816
-	64,  // benchmarks.google_message3.Message18283.field18542:type_name -> benchmarks.google_message3.Message16685
-	65,  // benchmarks.google_message3.Message18283.field18550:type_name -> benchmarks.google_message3.Message0
-	35,  // benchmarks.google_message3.Message18283.field18555:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18559:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18560:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18564:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18566:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18569:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18570:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18573:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18574:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18575:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18576:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18577:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35,  // benchmarks.google_message3.Message18283.field18578:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	66,  // benchmarks.google_message3.Message13169.field13223:type_name -> benchmarks.google_message3.Message13168
-	67,  // benchmarks.google_message3.Message13169.field13224:type_name -> benchmarks.google_message3.Message13167
-	36,  // benchmarks.google_message3.Message3901.field4000:type_name -> benchmarks.google_message3.UnusedEnum
-	28,  // benchmarks.google_message3.Message18831.Message18832.message18833:type_name -> benchmarks.google_message3.Message18831.Message18832.Message18833
-	68,  // benchmarks.google_message3.Message4144.Message4145.field4165:type_name -> benchmarks.google_message3.Enum4146
-	69,  // benchmarks.google_message3.Message4144.Message4145.field4167:type_name -> benchmarks.google_message3.Enum4160
-	70,  // benchmarks.google_message3.Message4144.Message4145.field4169:type_name -> benchmarks.google_message3.Enum4152
-	65,  // benchmarks.google_message3.Message35573.Message35575.field35745:type_name -> benchmarks.google_message3.Message0
-	32,  // benchmarks.google_message3.Message35573.Message35575.message35576:type_name -> benchmarks.google_message3.Message35573.Message35575.Message35576
-	65,  // benchmarks.google_message3.Message35573.Message35575.Message35576.field35771:type_name -> benchmarks.google_message3.Message0
-	71,  // benchmarks.google_message3.Message36858.Message36859.field36968:type_name -> benchmarks.google_message3.Enum36860
-	65,  // benchmarks.google_message3.Message34621.field34669:extendee -> benchmarks.google_message3.Message0
-	8,   // benchmarks.google_message3.Message34621.field34669:type_name -> benchmarks.google_message3.Message34621
-	110, // starting offset of method output_type sub-list
-	110, // starting offset of method input_type sub-list
-	109, // starting offset of extension type_name sub-list
-	108, // starting offset of extension extendee sub-list
-	0,   // starting offset of field type_name sub-list
+	34,  // 0: benchmarks.google_message3.Message22853.field22869:type_name -> benchmarks.google_message3.Enum22854
+	35,  // 1: benchmarks.google_message3.Message22853.field22873:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	36,  // 2: benchmarks.google_message3.Message24345.field24534:type_name -> benchmarks.google_message3.UnusedEnum
+	37,  // 3: benchmarks.google_message3.Message24345.field24535:type_name -> benchmarks.google_message3.Message24346
+	36,  // 4: benchmarks.google_message3.Message24345.field24538:type_name -> benchmarks.google_message3.UnusedEnum
+	38,  // 5: benchmarks.google_message3.Message24345.field24543:type_name -> benchmarks.google_message3.Message24316
+	39,  // 6: benchmarks.google_message3.Message24345.field24544:type_name -> benchmarks.google_message3.Message24376
+	35,  // 7: benchmarks.google_message3.Message24345.field24549:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 8: benchmarks.google_message3.Message24345.field24550:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	40,  // 9: benchmarks.google_message3.Message24345.field24554:type_name -> benchmarks.google_message3.Message24379
+	41,  // 10: benchmarks.google_message3.Message24345.field24556:type_name -> benchmarks.google_message3.Message24356
+	42,  // 11: benchmarks.google_message3.Message24345.field24557:type_name -> benchmarks.google_message3.Message24366
+	43,  // 12: benchmarks.google_message3.Message24403.field24681:type_name -> benchmarks.google_message3.Message24401
+	44,  // 13: benchmarks.google_message3.Message24403.field24682:type_name -> benchmarks.google_message3.Message24402
+	35,  // 14: benchmarks.google_message3.Message24391.field24638:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	40,  // 15: benchmarks.google_message3.Message24391.field24644:type_name -> benchmarks.google_message3.Message24379
+	35,  // 16: benchmarks.google_message3.Message24391.field24645:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 17: benchmarks.google_message3.Message24391.field24646:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 18: benchmarks.google_message3.Message24391.field24647:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 19: benchmarks.google_message3.Message24391.field24648:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 20: benchmarks.google_message3.Message24391.field24649:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 21: benchmarks.google_message3.Message24391.field24650:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	45,  // 22: benchmarks.google_message3.Message27360.field27426:type_name -> benchmarks.google_message3.Message27358
+	46,  // 23: benchmarks.google_message3.Message27360.field27427:type_name -> benchmarks.google_message3.Enum27361
+	45,  // 24: benchmarks.google_message3.Message27360.field27428:type_name -> benchmarks.google_message3.Message27358
+	35,  // 25: benchmarks.google_message3.Message27360.field27429:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	47,  // 26: benchmarks.google_message3.Message34387.field34447:type_name -> benchmarks.google_message3.Message34381
+	36,  // 27: benchmarks.google_message3.Message34387.field34448:type_name -> benchmarks.google_message3.UnusedEnum
+	48,  // 28: benchmarks.google_message3.Message34387.field34449:type_name -> benchmarks.google_message3.Enum34388
+	35,  // 29: benchmarks.google_message3.Message34621.field34656:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	49,  // 30: benchmarks.google_message3.Message34621.field34657:type_name -> benchmarks.google_message3.Message34619
+	35,  // 31: benchmarks.google_message3.Message34621.field34665:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	8,   // 32: benchmarks.google_message3.Message34621.field34666:type_name -> benchmarks.google_message3.Message34621
+	35,  // 33: benchmarks.google_message3.Message34621.field34667:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 34: benchmarks.google_message3.Message34621.field34668:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	50,  // 35: benchmarks.google_message3.Message35476.field35487:type_name -> benchmarks.google_message3.Enum35477
+	35,  // 36: benchmarks.google_message3.Message35476.field35492:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	51,  // 37: benchmarks.google_message3.Message949.field958:type_name -> benchmarks.google_message3.Message730
+	26,  // 38: benchmarks.google_message3.Message33968.message33969:type_name -> benchmarks.google_message3.Message33968.Message33969
+	52,  // 39: benchmarks.google_message3.Message33968.field33989:type_name -> benchmarks.google_message3.Message33958
+	35,  // 40: benchmarks.google_message3.Message33968.field33990:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	36,  // 41: benchmarks.google_message3.Message33968.field33992:type_name -> benchmarks.google_message3.UnusedEnum
+	35,  // 42: benchmarks.google_message3.Message6644.field6701:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 43: benchmarks.google_message3.Message6644.field6704:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	53,  // 44: benchmarks.google_message3.Message6644.field6707:type_name -> benchmarks.google_message3.Message6637
+	54,  // 45: benchmarks.google_message3.Message6644.field6708:type_name -> benchmarks.google_message3.Message6126
+	55,  // 46: benchmarks.google_message3.Message6644.field6710:type_name -> benchmarks.google_message3.Message6643
+	35,  // 47: benchmarks.google_message3.Message6644.field6712:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 48: benchmarks.google_message3.Message6644.field6713:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 49: benchmarks.google_message3.Message6644.field6714:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 50: benchmarks.google_message3.Message6644.field6716:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	27,  // 51: benchmarks.google_message3.Message18831.message18832:type_name -> benchmarks.google_message3.Message18831.Message18832
+	56,  // 52: benchmarks.google_message3.Message13090.field13141:type_name -> benchmarks.google_message3.Message13083
+	57,  // 53: benchmarks.google_message3.Message13090.field13142:type_name -> benchmarks.google_message3.Message13088
+	58,  // 54: benchmarks.google_message3.Message11874.field11888:type_name -> benchmarks.google_message3.Message10391
+	59,  // 55: benchmarks.google_message3.Message11874.field11890:type_name -> benchmarks.google_message3.Message11873
+	29,  // 56: benchmarks.google_message3.Message4144.message4145:type_name -> benchmarks.google_message3.Message4144.Message4145
+	30,  // 57: benchmarks.google_message3.Message35573.message35574:type_name -> benchmarks.google_message3.Message35573.Message35574
+	31,  // 58: benchmarks.google_message3.Message35573.message35575:type_name -> benchmarks.google_message3.Message35573.Message35575
+	60,  // 59: benchmarks.google_message3.Message36858.field36966:type_name -> benchmarks.google_message3.Message35506
+	33,  // 60: benchmarks.google_message3.Message36858.message36859:type_name -> benchmarks.google_message3.Message36858.Message36859
+	61,  // 61: benchmarks.google_message3.Message13174.field13249:type_name -> benchmarks.google_message3.Message13151
+	35,  // 62: benchmarks.google_message3.Message18283.field18478:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 63: benchmarks.google_message3.Message18283.field18500:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 64: benchmarks.google_message3.Message18283.field18501:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 65: benchmarks.google_message3.Message18283.field18502:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62,  // 66: benchmarks.google_message3.Message18283.field18503:type_name -> benchmarks.google_message3.Message18253
+	35,  // 67: benchmarks.google_message3.Message18283.field18504:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 68: benchmarks.google_message3.Message18283.field18505:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 69: benchmarks.google_message3.Message18283.field18506:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 70: benchmarks.google_message3.Message18283.field18512:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 71: benchmarks.google_message3.Message18283.field18519:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 72: benchmarks.google_message3.Message18283.field18522:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 73: benchmarks.google_message3.Message18283.field18523:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 74: benchmarks.google_message3.Message18283.field18524:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 75: benchmarks.google_message3.Message18283.field18525:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 76: benchmarks.google_message3.Message18283.field18526:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 77: benchmarks.google_message3.Message18283.field18529:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 78: benchmarks.google_message3.Message18283.field18530:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 79: benchmarks.google_message3.Message18283.field18531:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 80: benchmarks.google_message3.Message18283.field18538:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	63,  // 81: benchmarks.google_message3.Message18283.field18541:type_name -> benchmarks.google_message3.Message16816
+	64,  // 82: benchmarks.google_message3.Message18283.field18542:type_name -> benchmarks.google_message3.Message16685
+	65,  // 83: benchmarks.google_message3.Message18283.field18550:type_name -> benchmarks.google_message3.Message0
+	35,  // 84: benchmarks.google_message3.Message18283.field18555:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 85: benchmarks.google_message3.Message18283.field18559:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 86: benchmarks.google_message3.Message18283.field18560:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 87: benchmarks.google_message3.Message18283.field18564:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 88: benchmarks.google_message3.Message18283.field18566:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 89: benchmarks.google_message3.Message18283.field18569:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 90: benchmarks.google_message3.Message18283.field18570:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 91: benchmarks.google_message3.Message18283.field18573:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 92: benchmarks.google_message3.Message18283.field18574:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 93: benchmarks.google_message3.Message18283.field18575:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 94: benchmarks.google_message3.Message18283.field18576:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 95: benchmarks.google_message3.Message18283.field18577:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35,  // 96: benchmarks.google_message3.Message18283.field18578:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	66,  // 97: benchmarks.google_message3.Message13169.field13223:type_name -> benchmarks.google_message3.Message13168
+	67,  // 98: benchmarks.google_message3.Message13169.field13224:type_name -> benchmarks.google_message3.Message13167
+	36,  // 99: benchmarks.google_message3.Message3901.field4000:type_name -> benchmarks.google_message3.UnusedEnum
+	28,  // 100: benchmarks.google_message3.Message18831.Message18832.message18833:type_name -> benchmarks.google_message3.Message18831.Message18832.Message18833
+	68,  // 101: benchmarks.google_message3.Message4144.Message4145.field4165:type_name -> benchmarks.google_message3.Enum4146
+	69,  // 102: benchmarks.google_message3.Message4144.Message4145.field4167:type_name -> benchmarks.google_message3.Enum4160
+	70,  // 103: benchmarks.google_message3.Message4144.Message4145.field4169:type_name -> benchmarks.google_message3.Enum4152
+	65,  // 104: benchmarks.google_message3.Message35573.Message35575.field35745:type_name -> benchmarks.google_message3.Message0
+	32,  // 105: benchmarks.google_message3.Message35573.Message35575.message35576:type_name -> benchmarks.google_message3.Message35573.Message35575.Message35576
+	65,  // 106: benchmarks.google_message3.Message35573.Message35575.Message35576.field35771:type_name -> benchmarks.google_message3.Message0
+	71,  // 107: benchmarks.google_message3.Message36858.Message36859.field36968:type_name -> benchmarks.google_message3.Enum36860
+	65,  // 108: benchmarks.google_message3.Message34621.field34669:extendee -> benchmarks.google_message3.Message0
+	8,   // 109: benchmarks.google_message3.Message34621.field34669:type_name -> benchmarks.google_message3.Message34621
+	110, // [110:110] is the sub-list for method output_type
+	110, // [110:110] is the sub-list for method input_type
+	109, // [109:110] is the sub-list for extension type_name
+	108, // [108:109] is the sub-list for extension extendee
+	0,   // [0:108] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_2_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_3.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_3.pb.go
index 9bc9a05..fd3d431 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_3.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_3.pb.go
@@ -5267,100 +5267,100 @@
 	(*Message3850)(nil),               // 70: benchmarks.google_message3.Message3850
 }
 var file_datasets_google_message3_benchmark_message3_3_proto_depIdxs = []int32{
-	28, // benchmarks.google_message3.Message35546.message35547:type_name -> benchmarks.google_message3.Message35546.Message35547
-	29, // benchmarks.google_message3.Message35546.message35548:type_name -> benchmarks.google_message3.Message35546.Message35548
-	37, // benchmarks.google_message3.Message2356.field2368:type_name -> benchmarks.google_message3.Message1374
-	30, // benchmarks.google_message3.Message2356.message2357:type_name -> benchmarks.google_message3.Message2356.Message2357
-	31, // benchmarks.google_message3.Message2356.message2358:type_name -> benchmarks.google_message3.Message2356.Message2358
-	32, // benchmarks.google_message3.Message2356.message2359:type_name -> benchmarks.google_message3.Message2356.Message2359
-	38, // benchmarks.google_message3.Message2356.field2393:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message2356.field2394:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message2356.field2395:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message2356.field2396:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	33, // benchmarks.google_message3.Message7029.message7030:type_name -> benchmarks.google_message3.Message7029.Message7030
-	34, // benchmarks.google_message3.Message7029.message7031:type_name -> benchmarks.google_message3.Message7029.Message7031
-	38, // benchmarks.google_message3.Message7029.field7219:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message7029.field7223:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message18921.field18952:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	35, // benchmarks.google_message3.Message18921.message18922:type_name -> benchmarks.google_message3.Message18921.Message18922
-	38, // benchmarks.google_message3.Message18921.field18954:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	39, // benchmarks.google_message3.Message18921.field18955:type_name -> benchmarks.google_message3.Message18943
-	40, // benchmarks.google_message3.Message18921.field18956:type_name -> benchmarks.google_message3.Message18944
-	38, // benchmarks.google_message3.Message18921.field18957:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	36, // benchmarks.google_message3.Message3886.message3887:type_name -> benchmarks.google_message3.Message3886.Message3887
-	41, // benchmarks.google_message3.Message6743.field6759:type_name -> benchmarks.google_message3.Message6721
-	42, // benchmarks.google_message3.Message6743.field6760:type_name -> benchmarks.google_message3.Message6723
-	42, // benchmarks.google_message3.Message6743.field6761:type_name -> benchmarks.google_message3.Message6723
-	43, // benchmarks.google_message3.Message6743.field6762:type_name -> benchmarks.google_message3.Message6725
-	44, // benchmarks.google_message3.Message6743.field6763:type_name -> benchmarks.google_message3.Message6726
-	45, // benchmarks.google_message3.Message6743.field6764:type_name -> benchmarks.google_message3.Message6733
-	46, // benchmarks.google_message3.Message6743.field6765:type_name -> benchmarks.google_message3.Message6734
-	47, // benchmarks.google_message3.Message6743.field6766:type_name -> benchmarks.google_message3.Message6742
-	48, // benchmarks.google_message3.Message6773.field6794:type_name -> benchmarks.google_message3.Enum6769
-	49, // benchmarks.google_message3.Message6773.field6796:type_name -> benchmarks.google_message3.UnusedEnum
-	50, // benchmarks.google_message3.Message6773.field6799:type_name -> benchmarks.google_message3.Enum6774
-	51, // benchmarks.google_message3.Message6773.field6803:type_name -> benchmarks.google_message3.Enum6782
-	38, // benchmarks.google_message3.Message8224.field8255:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	52, // benchmarks.google_message3.Message8224.field8256:type_name -> benchmarks.google_message3.Message8184
-	53, // benchmarks.google_message3.Message8224.field8257:type_name -> benchmarks.google_message3.Message7966
-	38, // benchmarks.google_message3.Message8224.field8272:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8224.field8273:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8224.field8274:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8224.field8276:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8224.field8277:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8224.field8278:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8224.field8279:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8224.field8281:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	53, // benchmarks.google_message3.Message8392.field8397:type_name -> benchmarks.google_message3.Message7966
-	38, // benchmarks.google_message3.Message8130.field8159:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8130.field8162:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8130.field8167:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8130.field8168:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	49, // benchmarks.google_message3.Message8130.field8170:type_name -> benchmarks.google_message3.UnusedEnum
-	49, // benchmarks.google_message3.Message8130.field8171:type_name -> benchmarks.google_message3.UnusedEnum
-	38, // benchmarks.google_message3.Message8130.field8177:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8130.field8178:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message8130.field8179:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	53, // benchmarks.google_message3.Message8478.field8490:type_name -> benchmarks.google_message3.Message7966
-	54, // benchmarks.google_message3.Message8478.field8491:type_name -> benchmarks.google_message3.Message8476
-	54, // benchmarks.google_message3.Message8478.field8493:type_name -> benchmarks.google_message3.Message8476
-	55, // benchmarks.google_message3.Message8478.field8494:type_name -> benchmarks.google_message3.Message8477
-	56, // benchmarks.google_message3.Message8478.field8495:type_name -> benchmarks.google_message3.Message8454
-	38, // benchmarks.google_message3.Message8478.field8496:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	57, // benchmarks.google_message3.Message8479.field8497:type_name -> benchmarks.google_message3.Message8475
-	53, // benchmarks.google_message3.Message8479.field8498:type_name -> benchmarks.google_message3.Message7966
-	54, // benchmarks.google_message3.Message8479.field8499:type_name -> benchmarks.google_message3.Message8476
-	54, // benchmarks.google_message3.Message8479.field8500:type_name -> benchmarks.google_message3.Message8476
-	53, // benchmarks.google_message3.Message8479.field8503:type_name -> benchmarks.google_message3.Message7966
-	58, // benchmarks.google_message3.Message8479.field8504:type_name -> benchmarks.google_message3.Message8455
-	38, // benchmarks.google_message3.Message8479.field8505:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	59, // benchmarks.google_message3.Message10319.field10340:type_name -> benchmarks.google_message3.Enum10325
-	60, // benchmarks.google_message3.Message12669.field12681:type_name -> benchmarks.google_message3.Message12559
-	61, // benchmarks.google_message3.Message12669.field12684:type_name -> benchmarks.google_message3.Enum12670
-	62, // benchmarks.google_message3.Message12818.field12833:type_name -> benchmarks.google_message3.Message12817
-	63, // benchmarks.google_message3.Message16479.field16484:type_name -> benchmarks.google_message3.Message16480
-	38, // benchmarks.google_message3.Message16724.field16768:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	64, // benchmarks.google_message3.Message16724.field16771:type_name -> benchmarks.google_message3.Enum16728
-	49, // benchmarks.google_message3.Message24356.field24565:type_name -> benchmarks.google_message3.UnusedEnum
-	65, // benchmarks.google_message3.Message24356.field24567:type_name -> benchmarks.google_message3.Enum24361
-	38, // benchmarks.google_message3.Message24356.field24571:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	66, // benchmarks.google_message3.Message24376.field24592:type_name -> benchmarks.google_message3.Message24377
-	67, // benchmarks.google_message3.Message24376.field24593:type_name -> benchmarks.google_message3.Message24317
-	68, // benchmarks.google_message3.Message24376.field24595:type_name -> benchmarks.google_message3.Message24378
-	38, // benchmarks.google_message3.Message24376.field24597:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	49, // benchmarks.google_message3.Message24366.field24581:type_name -> benchmarks.google_message3.UnusedEnum
-	49, // benchmarks.google_message3.Message24366.field24583:type_name -> benchmarks.google_message3.UnusedEnum
-	38, // benchmarks.google_message3.Message24366.field24586:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	69, // benchmarks.google_message3.Message18921.Message18922.field18966:type_name -> benchmarks.google_message3.Message18856
-	38, // benchmarks.google_message3.Message18921.Message18922.field18968:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	38, // benchmarks.google_message3.Message18921.Message18922.field18978:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	49, // benchmarks.google_message3.Message18921.Message18922.field18979:type_name -> benchmarks.google_message3.UnusedEnum
-	70, // benchmarks.google_message3.Message3886.Message3887.field3934:type_name -> benchmarks.google_message3.Message3850
-	89, // starting offset of method output_type sub-list
-	89, // starting offset of method input_type sub-list
-	89, // starting offset of extension type_name sub-list
-	89, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	28, // 0: benchmarks.google_message3.Message35546.message35547:type_name -> benchmarks.google_message3.Message35546.Message35547
+	29, // 1: benchmarks.google_message3.Message35546.message35548:type_name -> benchmarks.google_message3.Message35546.Message35548
+	37, // 2: benchmarks.google_message3.Message2356.field2368:type_name -> benchmarks.google_message3.Message1374
+	30, // 3: benchmarks.google_message3.Message2356.message2357:type_name -> benchmarks.google_message3.Message2356.Message2357
+	31, // 4: benchmarks.google_message3.Message2356.message2358:type_name -> benchmarks.google_message3.Message2356.Message2358
+	32, // 5: benchmarks.google_message3.Message2356.message2359:type_name -> benchmarks.google_message3.Message2356.Message2359
+	38, // 6: benchmarks.google_message3.Message2356.field2393:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 7: benchmarks.google_message3.Message2356.field2394:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 8: benchmarks.google_message3.Message2356.field2395:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 9: benchmarks.google_message3.Message2356.field2396:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	33, // 10: benchmarks.google_message3.Message7029.message7030:type_name -> benchmarks.google_message3.Message7029.Message7030
+	34, // 11: benchmarks.google_message3.Message7029.message7031:type_name -> benchmarks.google_message3.Message7029.Message7031
+	38, // 12: benchmarks.google_message3.Message7029.field7219:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 13: benchmarks.google_message3.Message7029.field7223:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 14: benchmarks.google_message3.Message18921.field18952:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	35, // 15: benchmarks.google_message3.Message18921.message18922:type_name -> benchmarks.google_message3.Message18921.Message18922
+	38, // 16: benchmarks.google_message3.Message18921.field18954:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	39, // 17: benchmarks.google_message3.Message18921.field18955:type_name -> benchmarks.google_message3.Message18943
+	40, // 18: benchmarks.google_message3.Message18921.field18956:type_name -> benchmarks.google_message3.Message18944
+	38, // 19: benchmarks.google_message3.Message18921.field18957:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	36, // 20: benchmarks.google_message3.Message3886.message3887:type_name -> benchmarks.google_message3.Message3886.Message3887
+	41, // 21: benchmarks.google_message3.Message6743.field6759:type_name -> benchmarks.google_message3.Message6721
+	42, // 22: benchmarks.google_message3.Message6743.field6760:type_name -> benchmarks.google_message3.Message6723
+	42, // 23: benchmarks.google_message3.Message6743.field6761:type_name -> benchmarks.google_message3.Message6723
+	43, // 24: benchmarks.google_message3.Message6743.field6762:type_name -> benchmarks.google_message3.Message6725
+	44, // 25: benchmarks.google_message3.Message6743.field6763:type_name -> benchmarks.google_message3.Message6726
+	45, // 26: benchmarks.google_message3.Message6743.field6764:type_name -> benchmarks.google_message3.Message6733
+	46, // 27: benchmarks.google_message3.Message6743.field6765:type_name -> benchmarks.google_message3.Message6734
+	47, // 28: benchmarks.google_message3.Message6743.field6766:type_name -> benchmarks.google_message3.Message6742
+	48, // 29: benchmarks.google_message3.Message6773.field6794:type_name -> benchmarks.google_message3.Enum6769
+	49, // 30: benchmarks.google_message3.Message6773.field6796:type_name -> benchmarks.google_message3.UnusedEnum
+	50, // 31: benchmarks.google_message3.Message6773.field6799:type_name -> benchmarks.google_message3.Enum6774
+	51, // 32: benchmarks.google_message3.Message6773.field6803:type_name -> benchmarks.google_message3.Enum6782
+	38, // 33: benchmarks.google_message3.Message8224.field8255:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	52, // 34: benchmarks.google_message3.Message8224.field8256:type_name -> benchmarks.google_message3.Message8184
+	53, // 35: benchmarks.google_message3.Message8224.field8257:type_name -> benchmarks.google_message3.Message7966
+	38, // 36: benchmarks.google_message3.Message8224.field8272:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 37: benchmarks.google_message3.Message8224.field8273:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 38: benchmarks.google_message3.Message8224.field8274:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 39: benchmarks.google_message3.Message8224.field8276:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 40: benchmarks.google_message3.Message8224.field8277:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 41: benchmarks.google_message3.Message8224.field8278:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 42: benchmarks.google_message3.Message8224.field8279:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 43: benchmarks.google_message3.Message8224.field8281:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	53, // 44: benchmarks.google_message3.Message8392.field8397:type_name -> benchmarks.google_message3.Message7966
+	38, // 45: benchmarks.google_message3.Message8130.field8159:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 46: benchmarks.google_message3.Message8130.field8162:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 47: benchmarks.google_message3.Message8130.field8167:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 48: benchmarks.google_message3.Message8130.field8168:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	49, // 49: benchmarks.google_message3.Message8130.field8170:type_name -> benchmarks.google_message3.UnusedEnum
+	49, // 50: benchmarks.google_message3.Message8130.field8171:type_name -> benchmarks.google_message3.UnusedEnum
+	38, // 51: benchmarks.google_message3.Message8130.field8177:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 52: benchmarks.google_message3.Message8130.field8178:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 53: benchmarks.google_message3.Message8130.field8179:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	53, // 54: benchmarks.google_message3.Message8478.field8490:type_name -> benchmarks.google_message3.Message7966
+	54, // 55: benchmarks.google_message3.Message8478.field8491:type_name -> benchmarks.google_message3.Message8476
+	54, // 56: benchmarks.google_message3.Message8478.field8493:type_name -> benchmarks.google_message3.Message8476
+	55, // 57: benchmarks.google_message3.Message8478.field8494:type_name -> benchmarks.google_message3.Message8477
+	56, // 58: benchmarks.google_message3.Message8478.field8495:type_name -> benchmarks.google_message3.Message8454
+	38, // 59: benchmarks.google_message3.Message8478.field8496:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	57, // 60: benchmarks.google_message3.Message8479.field8497:type_name -> benchmarks.google_message3.Message8475
+	53, // 61: benchmarks.google_message3.Message8479.field8498:type_name -> benchmarks.google_message3.Message7966
+	54, // 62: benchmarks.google_message3.Message8479.field8499:type_name -> benchmarks.google_message3.Message8476
+	54, // 63: benchmarks.google_message3.Message8479.field8500:type_name -> benchmarks.google_message3.Message8476
+	53, // 64: benchmarks.google_message3.Message8479.field8503:type_name -> benchmarks.google_message3.Message7966
+	58, // 65: benchmarks.google_message3.Message8479.field8504:type_name -> benchmarks.google_message3.Message8455
+	38, // 66: benchmarks.google_message3.Message8479.field8505:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	59, // 67: benchmarks.google_message3.Message10319.field10340:type_name -> benchmarks.google_message3.Enum10325
+	60, // 68: benchmarks.google_message3.Message12669.field12681:type_name -> benchmarks.google_message3.Message12559
+	61, // 69: benchmarks.google_message3.Message12669.field12684:type_name -> benchmarks.google_message3.Enum12670
+	62, // 70: benchmarks.google_message3.Message12818.field12833:type_name -> benchmarks.google_message3.Message12817
+	63, // 71: benchmarks.google_message3.Message16479.field16484:type_name -> benchmarks.google_message3.Message16480
+	38, // 72: benchmarks.google_message3.Message16724.field16768:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	64, // 73: benchmarks.google_message3.Message16724.field16771:type_name -> benchmarks.google_message3.Enum16728
+	49, // 74: benchmarks.google_message3.Message24356.field24565:type_name -> benchmarks.google_message3.UnusedEnum
+	65, // 75: benchmarks.google_message3.Message24356.field24567:type_name -> benchmarks.google_message3.Enum24361
+	38, // 76: benchmarks.google_message3.Message24356.field24571:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	66, // 77: benchmarks.google_message3.Message24376.field24592:type_name -> benchmarks.google_message3.Message24377
+	67, // 78: benchmarks.google_message3.Message24376.field24593:type_name -> benchmarks.google_message3.Message24317
+	68, // 79: benchmarks.google_message3.Message24376.field24595:type_name -> benchmarks.google_message3.Message24378
+	38, // 80: benchmarks.google_message3.Message24376.field24597:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	49, // 81: benchmarks.google_message3.Message24366.field24581:type_name -> benchmarks.google_message3.UnusedEnum
+	49, // 82: benchmarks.google_message3.Message24366.field24583:type_name -> benchmarks.google_message3.UnusedEnum
+	38, // 83: benchmarks.google_message3.Message24366.field24586:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	69, // 84: benchmarks.google_message3.Message18921.Message18922.field18966:type_name -> benchmarks.google_message3.Message18856
+	38, // 85: benchmarks.google_message3.Message18921.Message18922.field18968:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	38, // 86: benchmarks.google_message3.Message18921.Message18922.field18978:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	49, // 87: benchmarks.google_message3.Message18921.Message18922.field18979:type_name -> benchmarks.google_message3.UnusedEnum
+	70, // 88: benchmarks.google_message3.Message3886.Message3887.field3934:type_name -> benchmarks.google_message3.Message3850
+	89, // [89:89] is the sub-list for method output_type
+	89, // [89:89] is the sub-list for method input_type
+	89, // [89:89] is the sub-list for extension type_name
+	89, // [89:89] is the sub-list for extension extendee
+	0,  // [0:89] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_3_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_4.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_4.pb.go
index 19354c8..11cc5cf 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_4.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_4.pb.go
@@ -5619,119 +5619,119 @@
 	(*Message8302)(nil),               // 108: benchmarks.google_message3.Message8302
 }
 var file_datasets_google_message3_benchmark_message3_4_proto_depIdxs = []int32{
-	54,  // benchmarks.google_message3.Message24401.field24679:type_name -> benchmarks.google_message3.Message24400
-	54,  // benchmarks.google_message3.Message24402.field24680:type_name -> benchmarks.google_message3.Message24400
-	55,  // benchmarks.google_message3.Message24379.field24606:type_name -> benchmarks.google_message3.Message24380
-	56,  // benchmarks.google_message3.Message24379.field24607:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	57,  // benchmarks.google_message3.Message24379.field24609:type_name -> benchmarks.google_message3.Message24381
-	56,  // benchmarks.google_message3.Message24379.field24611:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message24379.field24618:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message34381.field34399:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message34381.field34400:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message34381.field34401:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message34381.field34402:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message34381.field34405:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message34381.field34407:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message34619.field34647:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	58,  // benchmarks.google_message3.Message730.field905:type_name -> benchmarks.google_message3.Message697
-	59,  // benchmarks.google_message3.Message730.field906:type_name -> benchmarks.google_message3.Message704
-	60,  // benchmarks.google_message3.Message730.field908:type_name -> benchmarks.google_message3.Message703
-	61,  // benchmarks.google_message3.Message730.field910:type_name -> benchmarks.google_message3.Message716
-	62,  // benchmarks.google_message3.Message730.field911:type_name -> benchmarks.google_message3.Message718
-	63,  // benchmarks.google_message3.Message730.field913:type_name -> benchmarks.google_message3.Message715
-	64,  // benchmarks.google_message3.Message730.field916:type_name -> benchmarks.google_message3.Message719
-	65,  // benchmarks.google_message3.Message730.field917:type_name -> benchmarks.google_message3.Message728
-	66,  // benchmarks.google_message3.Message730.field918:type_name -> benchmarks.google_message3.Message702
-	56,  // benchmarks.google_message3.Message730.field922:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message730.field923:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message730.field924:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message730.field925:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message730.field926:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message730.field927:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	45,  // benchmarks.google_message3.Message33958.message33959:type_name -> benchmarks.google_message3.Message33958.Message33959
-	67,  // benchmarks.google_message3.Message33958.field33980:type_name -> benchmarks.google_message3.Enum33960
-	56,  // benchmarks.google_message3.Message6637.field6670:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message6637.field6671:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message6637.field6674:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message6643.field6683:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message6643.field6684:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	68,  // benchmarks.google_message3.Message6643.field6694:type_name -> benchmarks.google_message3.Message6578
-	69,  // benchmarks.google_message3.Message6643.field6695:type_name -> benchmarks.google_message3.UnusedEnum
-	56,  // benchmarks.google_message3.Message6643.field6697:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message6643.field6698:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message6643.field6699:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message6126.field6153:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	70,  // benchmarks.google_message3.Message6126.field6156:type_name -> benchmarks.google_message3.Message6024
-	71,  // benchmarks.google_message3.Message6126.field6162:type_name -> benchmarks.google_message3.Message6052
-	56,  // benchmarks.google_message3.Message6126.field6163:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	72,  // benchmarks.google_message3.Message6126.field6164:type_name -> benchmarks.google_message3.Enum6065
-	56,  // benchmarks.google_message3.Message6126.field6165:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	73,  // benchmarks.google_message3.Message6126.field6169:type_name -> benchmarks.google_message3.Message6054
-	46,  // benchmarks.google_message3.Message13083.message13084:type_name -> benchmarks.google_message3.Message13083.Message13084
-	47,  // benchmarks.google_message3.Message13083.message13085:type_name -> benchmarks.google_message3.Message13083.Message13085
-	48,  // benchmarks.google_message3.Message13083.message13086:type_name -> benchmarks.google_message3.Message13083.Message13086
-	49,  // benchmarks.google_message3.Message13083.message13087:type_name -> benchmarks.google_message3.Message13083.Message13087
-	56,  // benchmarks.google_message3.Message13083.field13105:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	50,  // benchmarks.google_message3.Message13088.message13089:type_name -> benchmarks.google_message3.Message13088.Message13089
-	74,  // benchmarks.google_message3.Message10391.field10411:type_name -> benchmarks.google_message3.Enum10392
-	69,  // benchmarks.google_message3.Message10391.field10412:type_name -> benchmarks.google_message3.UnusedEnum
-	56,  // benchmarks.google_message3.Message10391.field10418:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	75,  // benchmarks.google_message3.Message11873.field11878:type_name -> benchmarks.google_message3.Message10573
-	76,  // benchmarks.google_message3.Message11873.field11879:type_name -> benchmarks.google_message3.Message10582
-	77,  // benchmarks.google_message3.Message11873.field11880:type_name -> benchmarks.google_message3.Message10824
-	78,  // benchmarks.google_message3.Message11873.field11881:type_name -> benchmarks.google_message3.Message10773
-	79,  // benchmarks.google_message3.Message11873.field11882:type_name -> benchmarks.google_message3.Message11866
-	80,  // benchmarks.google_message3.Message11873.field11883:type_name -> benchmarks.google_message3.Message10818
-	56,  // benchmarks.google_message3.Message11873.field11884:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	81,  // benchmarks.google_message3.Message11873.field11885:type_name -> benchmarks.google_message3.Message10155
-	82,  // benchmarks.google_message3.Message11873.field11886:type_name -> benchmarks.google_message3.Message10469
-	56,  // benchmarks.google_message3.Message11873.field11887:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	83,  // benchmarks.google_message3.Message35506.field35526:type_name -> benchmarks.google_message3.Enum35507
-	56,  // benchmarks.google_message3.Message35506.field35527:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	84,  // benchmarks.google_message3.Message13151.field13158:type_name -> benchmarks.google_message3.Message13145
-	51,  // benchmarks.google_message3.Message18253.message18254:type_name -> benchmarks.google_message3.Message18253.Message18254
-	85,  // benchmarks.google_message3.Message16685.field16694:type_name -> benchmarks.google_message3.Message16686
-	86,  // benchmarks.google_message3.Message16816.field16827:type_name -> benchmarks.google_message3.Enum16819
-	52,  // benchmarks.google_message3.Message16816.message16817:type_name -> benchmarks.google_message3.Message16816.Message16817
-	53,  // benchmarks.google_message3.Message16816.message16818:type_name -> benchmarks.google_message3.Message16816.Message16818
-	87,  // benchmarks.google_message3.Message13168.field13217:type_name -> benchmarks.google_message3.Message12796
-	87,  // benchmarks.google_message3.Message13167.field13205:type_name -> benchmarks.google_message3.Message12796
-	88,  // benchmarks.google_message3.Message3850.field3924:type_name -> benchmarks.google_message3.Enum3851
-	89,  // benchmarks.google_message3.Message6721.field6744:type_name -> benchmarks.google_message3.Message6722
-	90,  // benchmarks.google_message3.Message6726.field6753:type_name -> benchmarks.google_message3.Message6727
-	91,  // benchmarks.google_message3.Message6723.field6749:type_name -> benchmarks.google_message3.Message6724
-	92,  // benchmarks.google_message3.Message6734.field6757:type_name -> benchmarks.google_message3.Message6735
-	93,  // benchmarks.google_message3.Message8184.field8228:type_name -> benchmarks.google_message3.Message7966
-	94,  // benchmarks.google_message3.Message8184.field8230:type_name -> benchmarks.google_message3.Message8183
-	93,  // benchmarks.google_message3.Message8477.field8486:type_name -> benchmarks.google_message3.Message7966
-	95,  // benchmarks.google_message3.Message8454.field8465:type_name -> benchmarks.google_message3.Message8449
-	95,  // benchmarks.google_message3.Message8455.field8470:type_name -> benchmarks.google_message3.Message8449
-	96,  // benchmarks.google_message3.Message8455.field8471:type_name -> benchmarks.google_message3.Message8456
-	97,  // benchmarks.google_message3.Message8455.field8472:type_name -> benchmarks.google_message3.Message8457
-	56,  // benchmarks.google_message3.Message8455.field8473:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	98,  // benchmarks.google_message3.Message16480.field16490:type_name -> benchmarks.google_message3.Message13358
-	99,  // benchmarks.google_message3.Message16480.field16491:type_name -> benchmarks.google_message3.Enum16042
-	100, // benchmarks.google_message3.Message16480.field16492:type_name -> benchmarks.google_message3.Message13912
-	98,  // benchmarks.google_message3.Message16480.field16497:type_name -> benchmarks.google_message3.Message13358
-	101, // benchmarks.google_message3.Message24317.field24447:type_name -> benchmarks.google_message3.Message24312
-	102, // benchmarks.google_message3.Message24317.field24448:type_name -> benchmarks.google_message3.Message24315
-	103, // benchmarks.google_message3.Message24317.field24449:type_name -> benchmarks.google_message3.Message24313
-	104, // benchmarks.google_message3.Message24317.field24450:type_name -> benchmarks.google_message3.Message24316
-	56,  // benchmarks.google_message3.Message24317.field24451:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	56,  // benchmarks.google_message3.Message24317.field24452:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	105, // benchmarks.google_message3.Message33958.Message33959.field33987:type_name -> benchmarks.google_message3.Message0
-	106, // benchmarks.google_message3.Message13083.Message13084.field13110:type_name -> benchmarks.google_message3.Enum13092
-	105, // benchmarks.google_message3.Message33958.field33981:extendee -> benchmarks.google_message3.Message0
-	107, // benchmarks.google_message3.Message8454.field8469:extendee -> benchmarks.google_message3.Message8301
-	108, // benchmarks.google_message3.Message8455.field8474:extendee -> benchmarks.google_message3.Message8302
-	8,   // benchmarks.google_message3.Message33958.field33981:type_name -> benchmarks.google_message3.Message33958
-	37,  // benchmarks.google_message3.Message8454.field8469:type_name -> benchmarks.google_message3.Message8454
-	39,  // benchmarks.google_message3.Message8455.field8474:type_name -> benchmarks.google_message3.Message8455
-	108, // starting offset of method output_type sub-list
-	108, // starting offset of method input_type sub-list
-	105, // starting offset of extension type_name sub-list
-	102, // starting offset of extension extendee sub-list
-	0,   // starting offset of field type_name sub-list
+	54,  // 0: benchmarks.google_message3.Message24401.field24679:type_name -> benchmarks.google_message3.Message24400
+	54,  // 1: benchmarks.google_message3.Message24402.field24680:type_name -> benchmarks.google_message3.Message24400
+	55,  // 2: benchmarks.google_message3.Message24379.field24606:type_name -> benchmarks.google_message3.Message24380
+	56,  // 3: benchmarks.google_message3.Message24379.field24607:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	57,  // 4: benchmarks.google_message3.Message24379.field24609:type_name -> benchmarks.google_message3.Message24381
+	56,  // 5: benchmarks.google_message3.Message24379.field24611:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 6: benchmarks.google_message3.Message24379.field24618:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 7: benchmarks.google_message3.Message34381.field34399:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 8: benchmarks.google_message3.Message34381.field34400:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 9: benchmarks.google_message3.Message34381.field34401:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 10: benchmarks.google_message3.Message34381.field34402:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 11: benchmarks.google_message3.Message34381.field34405:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 12: benchmarks.google_message3.Message34381.field34407:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 13: benchmarks.google_message3.Message34619.field34647:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	58,  // 14: benchmarks.google_message3.Message730.field905:type_name -> benchmarks.google_message3.Message697
+	59,  // 15: benchmarks.google_message3.Message730.field906:type_name -> benchmarks.google_message3.Message704
+	60,  // 16: benchmarks.google_message3.Message730.field908:type_name -> benchmarks.google_message3.Message703
+	61,  // 17: benchmarks.google_message3.Message730.field910:type_name -> benchmarks.google_message3.Message716
+	62,  // 18: benchmarks.google_message3.Message730.field911:type_name -> benchmarks.google_message3.Message718
+	63,  // 19: benchmarks.google_message3.Message730.field913:type_name -> benchmarks.google_message3.Message715
+	64,  // 20: benchmarks.google_message3.Message730.field916:type_name -> benchmarks.google_message3.Message719
+	65,  // 21: benchmarks.google_message3.Message730.field917:type_name -> benchmarks.google_message3.Message728
+	66,  // 22: benchmarks.google_message3.Message730.field918:type_name -> benchmarks.google_message3.Message702
+	56,  // 23: benchmarks.google_message3.Message730.field922:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 24: benchmarks.google_message3.Message730.field923:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 25: benchmarks.google_message3.Message730.field924:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 26: benchmarks.google_message3.Message730.field925:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 27: benchmarks.google_message3.Message730.field926:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 28: benchmarks.google_message3.Message730.field927:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	45,  // 29: benchmarks.google_message3.Message33958.message33959:type_name -> benchmarks.google_message3.Message33958.Message33959
+	67,  // 30: benchmarks.google_message3.Message33958.field33980:type_name -> benchmarks.google_message3.Enum33960
+	56,  // 31: benchmarks.google_message3.Message6637.field6670:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 32: benchmarks.google_message3.Message6637.field6671:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 33: benchmarks.google_message3.Message6637.field6674:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 34: benchmarks.google_message3.Message6643.field6683:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 35: benchmarks.google_message3.Message6643.field6684:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	68,  // 36: benchmarks.google_message3.Message6643.field6694:type_name -> benchmarks.google_message3.Message6578
+	69,  // 37: benchmarks.google_message3.Message6643.field6695:type_name -> benchmarks.google_message3.UnusedEnum
+	56,  // 38: benchmarks.google_message3.Message6643.field6697:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 39: benchmarks.google_message3.Message6643.field6698:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 40: benchmarks.google_message3.Message6643.field6699:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 41: benchmarks.google_message3.Message6126.field6153:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	70,  // 42: benchmarks.google_message3.Message6126.field6156:type_name -> benchmarks.google_message3.Message6024
+	71,  // 43: benchmarks.google_message3.Message6126.field6162:type_name -> benchmarks.google_message3.Message6052
+	56,  // 44: benchmarks.google_message3.Message6126.field6163:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	72,  // 45: benchmarks.google_message3.Message6126.field6164:type_name -> benchmarks.google_message3.Enum6065
+	56,  // 46: benchmarks.google_message3.Message6126.field6165:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	73,  // 47: benchmarks.google_message3.Message6126.field6169:type_name -> benchmarks.google_message3.Message6054
+	46,  // 48: benchmarks.google_message3.Message13083.message13084:type_name -> benchmarks.google_message3.Message13083.Message13084
+	47,  // 49: benchmarks.google_message3.Message13083.message13085:type_name -> benchmarks.google_message3.Message13083.Message13085
+	48,  // 50: benchmarks.google_message3.Message13083.message13086:type_name -> benchmarks.google_message3.Message13083.Message13086
+	49,  // 51: benchmarks.google_message3.Message13083.message13087:type_name -> benchmarks.google_message3.Message13083.Message13087
+	56,  // 52: benchmarks.google_message3.Message13083.field13105:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	50,  // 53: benchmarks.google_message3.Message13088.message13089:type_name -> benchmarks.google_message3.Message13088.Message13089
+	74,  // 54: benchmarks.google_message3.Message10391.field10411:type_name -> benchmarks.google_message3.Enum10392
+	69,  // 55: benchmarks.google_message3.Message10391.field10412:type_name -> benchmarks.google_message3.UnusedEnum
+	56,  // 56: benchmarks.google_message3.Message10391.field10418:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	75,  // 57: benchmarks.google_message3.Message11873.field11878:type_name -> benchmarks.google_message3.Message10573
+	76,  // 58: benchmarks.google_message3.Message11873.field11879:type_name -> benchmarks.google_message3.Message10582
+	77,  // 59: benchmarks.google_message3.Message11873.field11880:type_name -> benchmarks.google_message3.Message10824
+	78,  // 60: benchmarks.google_message3.Message11873.field11881:type_name -> benchmarks.google_message3.Message10773
+	79,  // 61: benchmarks.google_message3.Message11873.field11882:type_name -> benchmarks.google_message3.Message11866
+	80,  // 62: benchmarks.google_message3.Message11873.field11883:type_name -> benchmarks.google_message3.Message10818
+	56,  // 63: benchmarks.google_message3.Message11873.field11884:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	81,  // 64: benchmarks.google_message3.Message11873.field11885:type_name -> benchmarks.google_message3.Message10155
+	82,  // 65: benchmarks.google_message3.Message11873.field11886:type_name -> benchmarks.google_message3.Message10469
+	56,  // 66: benchmarks.google_message3.Message11873.field11887:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	83,  // 67: benchmarks.google_message3.Message35506.field35526:type_name -> benchmarks.google_message3.Enum35507
+	56,  // 68: benchmarks.google_message3.Message35506.field35527:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	84,  // 69: benchmarks.google_message3.Message13151.field13158:type_name -> benchmarks.google_message3.Message13145
+	51,  // 70: benchmarks.google_message3.Message18253.message18254:type_name -> benchmarks.google_message3.Message18253.Message18254
+	85,  // 71: benchmarks.google_message3.Message16685.field16694:type_name -> benchmarks.google_message3.Message16686
+	86,  // 72: benchmarks.google_message3.Message16816.field16827:type_name -> benchmarks.google_message3.Enum16819
+	52,  // 73: benchmarks.google_message3.Message16816.message16817:type_name -> benchmarks.google_message3.Message16816.Message16817
+	53,  // 74: benchmarks.google_message3.Message16816.message16818:type_name -> benchmarks.google_message3.Message16816.Message16818
+	87,  // 75: benchmarks.google_message3.Message13168.field13217:type_name -> benchmarks.google_message3.Message12796
+	87,  // 76: benchmarks.google_message3.Message13167.field13205:type_name -> benchmarks.google_message3.Message12796
+	88,  // 77: benchmarks.google_message3.Message3850.field3924:type_name -> benchmarks.google_message3.Enum3851
+	89,  // 78: benchmarks.google_message3.Message6721.field6744:type_name -> benchmarks.google_message3.Message6722
+	90,  // 79: benchmarks.google_message3.Message6726.field6753:type_name -> benchmarks.google_message3.Message6727
+	91,  // 80: benchmarks.google_message3.Message6723.field6749:type_name -> benchmarks.google_message3.Message6724
+	92,  // 81: benchmarks.google_message3.Message6734.field6757:type_name -> benchmarks.google_message3.Message6735
+	93,  // 82: benchmarks.google_message3.Message8184.field8228:type_name -> benchmarks.google_message3.Message7966
+	94,  // 83: benchmarks.google_message3.Message8184.field8230:type_name -> benchmarks.google_message3.Message8183
+	93,  // 84: benchmarks.google_message3.Message8477.field8486:type_name -> benchmarks.google_message3.Message7966
+	95,  // 85: benchmarks.google_message3.Message8454.field8465:type_name -> benchmarks.google_message3.Message8449
+	95,  // 86: benchmarks.google_message3.Message8455.field8470:type_name -> benchmarks.google_message3.Message8449
+	96,  // 87: benchmarks.google_message3.Message8455.field8471:type_name -> benchmarks.google_message3.Message8456
+	97,  // 88: benchmarks.google_message3.Message8455.field8472:type_name -> benchmarks.google_message3.Message8457
+	56,  // 89: benchmarks.google_message3.Message8455.field8473:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	98,  // 90: benchmarks.google_message3.Message16480.field16490:type_name -> benchmarks.google_message3.Message13358
+	99,  // 91: benchmarks.google_message3.Message16480.field16491:type_name -> benchmarks.google_message3.Enum16042
+	100, // 92: benchmarks.google_message3.Message16480.field16492:type_name -> benchmarks.google_message3.Message13912
+	98,  // 93: benchmarks.google_message3.Message16480.field16497:type_name -> benchmarks.google_message3.Message13358
+	101, // 94: benchmarks.google_message3.Message24317.field24447:type_name -> benchmarks.google_message3.Message24312
+	102, // 95: benchmarks.google_message3.Message24317.field24448:type_name -> benchmarks.google_message3.Message24315
+	103, // 96: benchmarks.google_message3.Message24317.field24449:type_name -> benchmarks.google_message3.Message24313
+	104, // 97: benchmarks.google_message3.Message24317.field24450:type_name -> benchmarks.google_message3.Message24316
+	56,  // 98: benchmarks.google_message3.Message24317.field24451:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	56,  // 99: benchmarks.google_message3.Message24317.field24452:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	105, // 100: benchmarks.google_message3.Message33958.Message33959.field33987:type_name -> benchmarks.google_message3.Message0
+	106, // 101: benchmarks.google_message3.Message13083.Message13084.field13110:type_name -> benchmarks.google_message3.Enum13092
+	105, // 102: benchmarks.google_message3.Message33958.field33981:extendee -> benchmarks.google_message3.Message0
+	107, // 103: benchmarks.google_message3.Message8454.field8469:extendee -> benchmarks.google_message3.Message8301
+	108, // 104: benchmarks.google_message3.Message8455.field8474:extendee -> benchmarks.google_message3.Message8302
+	8,   // 105: benchmarks.google_message3.Message33958.field33981:type_name -> benchmarks.google_message3.Message33958
+	37,  // 106: benchmarks.google_message3.Message8454.field8469:type_name -> benchmarks.google_message3.Message8454
+	39,  // 107: benchmarks.google_message3.Message8455.field8474:type_name -> benchmarks.google_message3.Message8455
+	108, // [108:108] is the sub-list for method output_type
+	108, // [108:108] is the sub-list for method input_type
+	105, // [105:108] is the sub-list for extension type_name
+	102, // [102:105] is the sub-list for extension extendee
+	0,   // [0:102] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_4_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_5.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_5.pb.go
index d486bf2..0bb74db 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_5.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_5.pb.go
@@ -5148,82 +5148,82 @@
 	(Enum8862)(0),                     // 92: benchmarks.google_message3.Enum8862
 }
 var file_datasets_google_message3_benchmark_message3_5_proto_depIdxs = []int32{
-	49, // benchmarks.google_message3.Message719.field884:type_name -> benchmarks.google_message3.Enum720
-	43, // benchmarks.google_message3.Message728.field889:type_name -> benchmarks.google_message3.Message703
-	44, // benchmarks.google_message3.Message728.field890:type_name -> benchmarks.google_message3.Message715
-	42, // benchmarks.google_message3.Message728.field893:type_name -> benchmarks.google_message3.Message718
-	41, // benchmarks.google_message3.Message728.field894:type_name -> benchmarks.google_message3.Message716
-	50, // benchmarks.google_message3.Message704.field806:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	45, // benchmarks.google_message3.Message697.field769:type_name -> benchmarks.google_message3.Message700
-	46, // benchmarks.google_message3.Message697.field776:type_name -> benchmarks.google_message3.Message699
-	47, // benchmarks.google_message3.Message697.field777:type_name -> benchmarks.google_message3.Message698
-	51, // benchmarks.google_message3.Message6578.field6632:type_name -> benchmarks.google_message3.Enum6579
-	52, // benchmarks.google_message3.Message6578.field6633:type_name -> benchmarks.google_message3.Enum6588
-	53, // benchmarks.google_message3.Message6024.field6048:type_name -> benchmarks.google_message3.Enum6025
-	50, // benchmarks.google_message3.Message6024.field6050:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	54, // benchmarks.google_message3.Message10573.field10580:type_name -> benchmarks.google_message3.Message10576
-	55, // benchmarks.google_message3.Message10155.field10197:type_name -> benchmarks.google_message3.Enum10157
-	48, // benchmarks.google_message3.Message10155.message10156:type_name -> benchmarks.google_message3.Message10155.Message10156
-	56, // benchmarks.google_message3.Message10155.field10213:type_name -> benchmarks.google_message3.Message9151
-	57, // benchmarks.google_message3.Message10155.field10217:type_name -> benchmarks.google_message3.Message10154
-	58, // benchmarks.google_message3.Message10155.field10235:type_name -> benchmarks.google_message3.Enum10167
-	59, // benchmarks.google_message3.Message10155.field10240:type_name -> benchmarks.google_message3.Message9182
-	60, // benchmarks.google_message3.Message10155.field10246:type_name -> benchmarks.google_message3.Message9242
-	50, // benchmarks.google_message3.Message10155.field10247:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	50, // benchmarks.google_message3.Message10155.field10248:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	61, // benchmarks.google_message3.Message10155.field10249:type_name -> benchmarks.google_message3.Message8944
-	50, // benchmarks.google_message3.Message10155.field10250:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	62, // benchmarks.google_message3.Message10155.field10253:type_name -> benchmarks.google_message3.Message9123
-	63, // benchmarks.google_message3.Message10155.field10254:type_name -> benchmarks.google_message3.Message9160
-	64, // benchmarks.google_message3.Message10155.field10255:type_name -> benchmarks.google_message3.Message8890
-	65, // benchmarks.google_message3.Message10155.field10264:type_name -> benchmarks.google_message3.Message9628
-	66, // benchmarks.google_message3.Message11866.field11868:type_name -> benchmarks.google_message3.Message11014
-	50, // benchmarks.google_message3.Message11866.field11872:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	67, // benchmarks.google_message3.Message10818.field10819:type_name -> benchmarks.google_message3.Message10800
-	68, // benchmarks.google_message3.Message10818.field10820:type_name -> benchmarks.google_message3.Message10801
-	69, // benchmarks.google_message3.Message10773.field10785:type_name -> benchmarks.google_message3.Message10749
-	50, // benchmarks.google_message3.Message10773.field10786:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	70, // benchmarks.google_message3.Message10773.field10795:type_name -> benchmarks.google_message3.UnusedEnum
-	70, // benchmarks.google_message3.Message10773.field10796:type_name -> benchmarks.google_message3.UnusedEnum
-	71, // benchmarks.google_message3.Message13145.field13155:type_name -> benchmarks.google_message3.Enum13146
-	72, // benchmarks.google_message3.Message8301.field8329:type_name -> benchmarks.google_message3.Message7966
-	73, // benchmarks.google_message3.Message8301.field8332:type_name -> benchmarks.google_message3.Message8290
-	72, // benchmarks.google_message3.Message8301.field8333:type_name -> benchmarks.google_message3.Message7966
-	74, // benchmarks.google_message3.Message8301.field8334:type_name -> benchmarks.google_message3.Message8298
-	75, // benchmarks.google_message3.Message8301.field8335:type_name -> benchmarks.google_message3.Message8300
-	50, // benchmarks.google_message3.Message8301.field8337:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	76, // benchmarks.google_message3.Message8301.field8338:type_name -> benchmarks.google_message3.Message7965
-	72, // benchmarks.google_message3.Message8302.field8340:type_name -> benchmarks.google_message3.Message7966
-	73, // benchmarks.google_message3.Message8302.field8348:type_name -> benchmarks.google_message3.Message8290
-	50, // benchmarks.google_message3.Message8302.field8350:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	77, // benchmarks.google_message3.Message8302.field8351:type_name -> benchmarks.google_message3.Message8291
-	78, // benchmarks.google_message3.Message8302.field8353:type_name -> benchmarks.google_message3.Message8296
-	50, // benchmarks.google_message3.Message8302.field8355:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	50, // benchmarks.google_message3.Message8302.field8358:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	76, // benchmarks.google_message3.Message8302.field8359:type_name -> benchmarks.google_message3.Message7965
-	79, // benchmarks.google_message3.Message8449.field8460:type_name -> benchmarks.google_message3.Enum8450
-	72, // benchmarks.google_message3.Message8449.field8464:type_name -> benchmarks.google_message3.Message7966
-	50, // benchmarks.google_message3.Message13358.field13361:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	50, // benchmarks.google_message3.Message13912.field13915:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	50, // benchmarks.google_message3.Message13912.field13916:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	80, // benchmarks.google_message3.Message716.field875:type_name -> benchmarks.google_message3.Message717
-	81, // benchmarks.google_message3.Message715.field861:type_name -> benchmarks.google_message3.Message707
-	82, // benchmarks.google_message3.Message715.field862:type_name -> benchmarks.google_message3.Message708
-	83, // benchmarks.google_message3.Message715.field863:type_name -> benchmarks.google_message3.Message711
-	84, // benchmarks.google_message3.Message715.field864:type_name -> benchmarks.google_message3.Message712
-	85, // benchmarks.google_message3.Message715.field865:type_name -> benchmarks.google_message3.Message713
-	86, // benchmarks.google_message3.Message715.field866:type_name -> benchmarks.google_message3.Message714
-	87, // benchmarks.google_message3.Message715.field867:type_name -> benchmarks.google_message3.Message710
-	88, // benchmarks.google_message3.Message715.field868:type_name -> benchmarks.google_message3.Message709
-	89, // benchmarks.google_message3.Message715.field869:type_name -> benchmarks.google_message3.Message705
-	90, // benchmarks.google_message3.Message715.field870:type_name -> benchmarks.google_message3.Message702
-	91, // benchmarks.google_message3.Message715.field871:type_name -> benchmarks.google_message3.Message706
-	92, // benchmarks.google_message3.Message10155.Message10156.field10266:type_name -> benchmarks.google_message3.Enum8862
-	71, // starting offset of method output_type sub-list
-	71, // starting offset of method input_type sub-list
-	71, // starting offset of extension type_name sub-list
-	71, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	49, // 0: benchmarks.google_message3.Message719.field884:type_name -> benchmarks.google_message3.Enum720
+	43, // 1: benchmarks.google_message3.Message728.field889:type_name -> benchmarks.google_message3.Message703
+	44, // 2: benchmarks.google_message3.Message728.field890:type_name -> benchmarks.google_message3.Message715
+	42, // 3: benchmarks.google_message3.Message728.field893:type_name -> benchmarks.google_message3.Message718
+	41, // 4: benchmarks.google_message3.Message728.field894:type_name -> benchmarks.google_message3.Message716
+	50, // 5: benchmarks.google_message3.Message704.field806:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	45, // 6: benchmarks.google_message3.Message697.field769:type_name -> benchmarks.google_message3.Message700
+	46, // 7: benchmarks.google_message3.Message697.field776:type_name -> benchmarks.google_message3.Message699
+	47, // 8: benchmarks.google_message3.Message697.field777:type_name -> benchmarks.google_message3.Message698
+	51, // 9: benchmarks.google_message3.Message6578.field6632:type_name -> benchmarks.google_message3.Enum6579
+	52, // 10: benchmarks.google_message3.Message6578.field6633:type_name -> benchmarks.google_message3.Enum6588
+	53, // 11: benchmarks.google_message3.Message6024.field6048:type_name -> benchmarks.google_message3.Enum6025
+	50, // 12: benchmarks.google_message3.Message6024.field6050:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	54, // 13: benchmarks.google_message3.Message10573.field10580:type_name -> benchmarks.google_message3.Message10576
+	55, // 14: benchmarks.google_message3.Message10155.field10197:type_name -> benchmarks.google_message3.Enum10157
+	48, // 15: benchmarks.google_message3.Message10155.message10156:type_name -> benchmarks.google_message3.Message10155.Message10156
+	56, // 16: benchmarks.google_message3.Message10155.field10213:type_name -> benchmarks.google_message3.Message9151
+	57, // 17: benchmarks.google_message3.Message10155.field10217:type_name -> benchmarks.google_message3.Message10154
+	58, // 18: benchmarks.google_message3.Message10155.field10235:type_name -> benchmarks.google_message3.Enum10167
+	59, // 19: benchmarks.google_message3.Message10155.field10240:type_name -> benchmarks.google_message3.Message9182
+	60, // 20: benchmarks.google_message3.Message10155.field10246:type_name -> benchmarks.google_message3.Message9242
+	50, // 21: benchmarks.google_message3.Message10155.field10247:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	50, // 22: benchmarks.google_message3.Message10155.field10248:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	61, // 23: benchmarks.google_message3.Message10155.field10249:type_name -> benchmarks.google_message3.Message8944
+	50, // 24: benchmarks.google_message3.Message10155.field10250:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	62, // 25: benchmarks.google_message3.Message10155.field10253:type_name -> benchmarks.google_message3.Message9123
+	63, // 26: benchmarks.google_message3.Message10155.field10254:type_name -> benchmarks.google_message3.Message9160
+	64, // 27: benchmarks.google_message3.Message10155.field10255:type_name -> benchmarks.google_message3.Message8890
+	65, // 28: benchmarks.google_message3.Message10155.field10264:type_name -> benchmarks.google_message3.Message9628
+	66, // 29: benchmarks.google_message3.Message11866.field11868:type_name -> benchmarks.google_message3.Message11014
+	50, // 30: benchmarks.google_message3.Message11866.field11872:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	67, // 31: benchmarks.google_message3.Message10818.field10819:type_name -> benchmarks.google_message3.Message10800
+	68, // 32: benchmarks.google_message3.Message10818.field10820:type_name -> benchmarks.google_message3.Message10801
+	69, // 33: benchmarks.google_message3.Message10773.field10785:type_name -> benchmarks.google_message3.Message10749
+	50, // 34: benchmarks.google_message3.Message10773.field10786:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	70, // 35: benchmarks.google_message3.Message10773.field10795:type_name -> benchmarks.google_message3.UnusedEnum
+	70, // 36: benchmarks.google_message3.Message10773.field10796:type_name -> benchmarks.google_message3.UnusedEnum
+	71, // 37: benchmarks.google_message3.Message13145.field13155:type_name -> benchmarks.google_message3.Enum13146
+	72, // 38: benchmarks.google_message3.Message8301.field8329:type_name -> benchmarks.google_message3.Message7966
+	73, // 39: benchmarks.google_message3.Message8301.field8332:type_name -> benchmarks.google_message3.Message8290
+	72, // 40: benchmarks.google_message3.Message8301.field8333:type_name -> benchmarks.google_message3.Message7966
+	74, // 41: benchmarks.google_message3.Message8301.field8334:type_name -> benchmarks.google_message3.Message8298
+	75, // 42: benchmarks.google_message3.Message8301.field8335:type_name -> benchmarks.google_message3.Message8300
+	50, // 43: benchmarks.google_message3.Message8301.field8337:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	76, // 44: benchmarks.google_message3.Message8301.field8338:type_name -> benchmarks.google_message3.Message7965
+	72, // 45: benchmarks.google_message3.Message8302.field8340:type_name -> benchmarks.google_message3.Message7966
+	73, // 46: benchmarks.google_message3.Message8302.field8348:type_name -> benchmarks.google_message3.Message8290
+	50, // 47: benchmarks.google_message3.Message8302.field8350:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	77, // 48: benchmarks.google_message3.Message8302.field8351:type_name -> benchmarks.google_message3.Message8291
+	78, // 49: benchmarks.google_message3.Message8302.field8353:type_name -> benchmarks.google_message3.Message8296
+	50, // 50: benchmarks.google_message3.Message8302.field8355:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	50, // 51: benchmarks.google_message3.Message8302.field8358:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	76, // 52: benchmarks.google_message3.Message8302.field8359:type_name -> benchmarks.google_message3.Message7965
+	79, // 53: benchmarks.google_message3.Message8449.field8460:type_name -> benchmarks.google_message3.Enum8450
+	72, // 54: benchmarks.google_message3.Message8449.field8464:type_name -> benchmarks.google_message3.Message7966
+	50, // 55: benchmarks.google_message3.Message13358.field13361:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	50, // 56: benchmarks.google_message3.Message13912.field13915:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	50, // 57: benchmarks.google_message3.Message13912.field13916:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	80, // 58: benchmarks.google_message3.Message716.field875:type_name -> benchmarks.google_message3.Message717
+	81, // 59: benchmarks.google_message3.Message715.field861:type_name -> benchmarks.google_message3.Message707
+	82, // 60: benchmarks.google_message3.Message715.field862:type_name -> benchmarks.google_message3.Message708
+	83, // 61: benchmarks.google_message3.Message715.field863:type_name -> benchmarks.google_message3.Message711
+	84, // 62: benchmarks.google_message3.Message715.field864:type_name -> benchmarks.google_message3.Message712
+	85, // 63: benchmarks.google_message3.Message715.field865:type_name -> benchmarks.google_message3.Message713
+	86, // 64: benchmarks.google_message3.Message715.field866:type_name -> benchmarks.google_message3.Message714
+	87, // 65: benchmarks.google_message3.Message715.field867:type_name -> benchmarks.google_message3.Message710
+	88, // 66: benchmarks.google_message3.Message715.field868:type_name -> benchmarks.google_message3.Message709
+	89, // 67: benchmarks.google_message3.Message715.field869:type_name -> benchmarks.google_message3.Message705
+	90, // 68: benchmarks.google_message3.Message715.field870:type_name -> benchmarks.google_message3.Message702
+	91, // 69: benchmarks.google_message3.Message715.field871:type_name -> benchmarks.google_message3.Message706
+	92, // 70: benchmarks.google_message3.Message10155.Message10156.field10266:type_name -> benchmarks.google_message3.Enum8862
+	71, // [71:71] is the sub-list for method output_type
+	71, // [71:71] is the sub-list for method input_type
+	71, // [71:71] is the sub-list for extension type_name
+	71, // [71:71] is the sub-list for extension extendee
+	0,  // [0:71] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_5_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_6.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_6.pb.go
index 4fb855f..b3d82cb 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_6.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_6.pb.go
@@ -4888,59 +4888,59 @@
 	(*Message11011)(nil),            // 60: benchmarks.google_message3.Message11011
 }
 var file_datasets_google_message3_benchmark_message3_6_proto_depIdxs = []int32{
-	42, // benchmarks.google_message3.Message8944.field9067:type_name -> benchmarks.google_message3.Enum8945
-	43, // benchmarks.google_message3.Message8944.field9078:type_name -> benchmarks.google_message3.Enum8951
-	44, // benchmarks.google_message3.Message8944.field9086:type_name -> benchmarks.google_message3.UnusedEnum
-	44, // benchmarks.google_message3.Message8944.field9093:type_name -> benchmarks.google_message3.UnusedEnum
-	44, // benchmarks.google_message3.Message8944.field9094:type_name -> benchmarks.google_message3.UnusedEnum
-	29, // benchmarks.google_message3.Message8944.field9105:type_name -> benchmarks.google_message3.Message8939
-	45, // benchmarks.google_message3.Message9182.field9215:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	45, // benchmarks.google_message3.Message9182.field9216:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	30, // benchmarks.google_message3.Message9182.field9217:type_name -> benchmarks.google_message3.Message9181
-	31, // benchmarks.google_message3.Message9182.field9221:type_name -> benchmarks.google_message3.Message9164
-	32, // benchmarks.google_message3.Message9182.field9222:type_name -> benchmarks.google_message3.Message9165
-	33, // benchmarks.google_message3.Message9182.field9223:type_name -> benchmarks.google_message3.Message9166
-	34, // benchmarks.google_message3.Message9182.field9225:type_name -> benchmarks.google_message3.Message9151
-	46, // benchmarks.google_message3.Message9242.field9327:type_name -> benchmarks.google_message3.Enum9243
-	35, // benchmarks.google_message3.Message8890.field8916:type_name -> benchmarks.google_message3.Message8888
-	36, // benchmarks.google_message3.Message9628.field9673:type_name -> benchmarks.google_message3.Message9627
-	47, // benchmarks.google_message3.Message11014.field11783:type_name -> benchmarks.google_message3.Enum11107
-	48, // benchmarks.google_message3.Message11014.field11794:type_name -> benchmarks.google_message3.Enum11541
-	44, // benchmarks.google_message3.Message11014.field11799:type_name -> benchmarks.google_message3.UnusedEnum
-	49, // benchmarks.google_message3.Message11014.field11800:type_name -> benchmarks.google_message3.Enum11468
-	44, // benchmarks.google_message3.Message11014.field11802:type_name -> benchmarks.google_message3.UnusedEnum
-	45, // benchmarks.google_message3.Message11014.field11806:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	50, // benchmarks.google_message3.Message11014.field11807:type_name -> benchmarks.google_message3.Message11018
-	47, // benchmarks.google_message3.Message11014.field11815:type_name -> benchmarks.google_message3.Enum11107
-	37, // benchmarks.google_message3.Message11014.field11826:type_name -> benchmarks.google_message3.Message11020
-	45, // benchmarks.google_message3.Message11014.field11827:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	51, // benchmarks.google_message3.Message11014.field11840:type_name -> benchmarks.google_message3.Enum11022
-	38, // benchmarks.google_message3.Message11014.field11841:type_name -> benchmarks.google_message3.Message11013
-	52, // benchmarks.google_message3.Message10801.field10812:type_name -> benchmarks.google_message3.Message10800
-	53, // benchmarks.google_message3.Message10801.field10813:type_name -> benchmarks.google_message3.Message10802
-	54, // benchmarks.google_message3.Message10749.field10754:type_name -> benchmarks.google_message3.Message10748
-	55, // benchmarks.google_message3.Message8298.field8321:type_name -> benchmarks.google_message3.Message7966
-	55, // benchmarks.google_message3.Message8300.field8327:type_name -> benchmarks.google_message3.Message7966
-	56, // benchmarks.google_message3.Message8291.field8310:type_name -> benchmarks.google_message3.Enum8292
-	55, // benchmarks.google_message3.Message8296.field8311:type_name -> benchmarks.google_message3.Message7966
-	55, // benchmarks.google_message3.Message8296.field8313:type_name -> benchmarks.google_message3.Message7966
-	57, // benchmarks.google_message3.Message713.field852:type_name -> benchmarks.google_message3.Message708
-	45, // benchmarks.google_message3.Message711.field839:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	39, // benchmarks.google_message3.Message8939.message8940:type_name -> benchmarks.google_message3.Message8939.Message8940
-	40, // benchmarks.google_message3.Message8939.message8941:type_name -> benchmarks.google_message3.Message8939.Message8941
-	58, // benchmarks.google_message3.Message8939.field9020:type_name -> benchmarks.google_message3.Message8942
-	45, // benchmarks.google_message3.Message8939.field9021:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	44, // benchmarks.google_message3.Message8939.field9029:type_name -> benchmarks.google_message3.UnusedEnum
-	44, // benchmarks.google_message3.Message8939.field9030:type_name -> benchmarks.google_message3.UnusedEnum
-	41, // benchmarks.google_message3.Message8939.message8943:type_name -> benchmarks.google_message3.Message8939.Message8943
-	59, // benchmarks.google_message3.Message8888.field8909:type_name -> benchmarks.google_message3.Enum8900
-	45, // benchmarks.google_message3.Message11013.field11778:type_name -> benchmarks.google_message3.UnusedEmptyMessage
-	60, // benchmarks.google_message3.Message11013.field11779:type_name -> benchmarks.google_message3.Message11011
-	48, // starting offset of method output_type sub-list
-	48, // starting offset of method input_type sub-list
-	48, // starting offset of extension type_name sub-list
-	48, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	42, // 0: benchmarks.google_message3.Message8944.field9067:type_name -> benchmarks.google_message3.Enum8945
+	43, // 1: benchmarks.google_message3.Message8944.field9078:type_name -> benchmarks.google_message3.Enum8951
+	44, // 2: benchmarks.google_message3.Message8944.field9086:type_name -> benchmarks.google_message3.UnusedEnum
+	44, // 3: benchmarks.google_message3.Message8944.field9093:type_name -> benchmarks.google_message3.UnusedEnum
+	44, // 4: benchmarks.google_message3.Message8944.field9094:type_name -> benchmarks.google_message3.UnusedEnum
+	29, // 5: benchmarks.google_message3.Message8944.field9105:type_name -> benchmarks.google_message3.Message8939
+	45, // 6: benchmarks.google_message3.Message9182.field9215:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	45, // 7: benchmarks.google_message3.Message9182.field9216:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	30, // 8: benchmarks.google_message3.Message9182.field9217:type_name -> benchmarks.google_message3.Message9181
+	31, // 9: benchmarks.google_message3.Message9182.field9221:type_name -> benchmarks.google_message3.Message9164
+	32, // 10: benchmarks.google_message3.Message9182.field9222:type_name -> benchmarks.google_message3.Message9165
+	33, // 11: benchmarks.google_message3.Message9182.field9223:type_name -> benchmarks.google_message3.Message9166
+	34, // 12: benchmarks.google_message3.Message9182.field9225:type_name -> benchmarks.google_message3.Message9151
+	46, // 13: benchmarks.google_message3.Message9242.field9327:type_name -> benchmarks.google_message3.Enum9243
+	35, // 14: benchmarks.google_message3.Message8890.field8916:type_name -> benchmarks.google_message3.Message8888
+	36, // 15: benchmarks.google_message3.Message9628.field9673:type_name -> benchmarks.google_message3.Message9627
+	47, // 16: benchmarks.google_message3.Message11014.field11783:type_name -> benchmarks.google_message3.Enum11107
+	48, // 17: benchmarks.google_message3.Message11014.field11794:type_name -> benchmarks.google_message3.Enum11541
+	44, // 18: benchmarks.google_message3.Message11014.field11799:type_name -> benchmarks.google_message3.UnusedEnum
+	49, // 19: benchmarks.google_message3.Message11014.field11800:type_name -> benchmarks.google_message3.Enum11468
+	44, // 20: benchmarks.google_message3.Message11014.field11802:type_name -> benchmarks.google_message3.UnusedEnum
+	45, // 21: benchmarks.google_message3.Message11014.field11806:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	50, // 22: benchmarks.google_message3.Message11014.field11807:type_name -> benchmarks.google_message3.Message11018
+	47, // 23: benchmarks.google_message3.Message11014.field11815:type_name -> benchmarks.google_message3.Enum11107
+	37, // 24: benchmarks.google_message3.Message11014.field11826:type_name -> benchmarks.google_message3.Message11020
+	45, // 25: benchmarks.google_message3.Message11014.field11827:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	51, // 26: benchmarks.google_message3.Message11014.field11840:type_name -> benchmarks.google_message3.Enum11022
+	38, // 27: benchmarks.google_message3.Message11014.field11841:type_name -> benchmarks.google_message3.Message11013
+	52, // 28: benchmarks.google_message3.Message10801.field10812:type_name -> benchmarks.google_message3.Message10800
+	53, // 29: benchmarks.google_message3.Message10801.field10813:type_name -> benchmarks.google_message3.Message10802
+	54, // 30: benchmarks.google_message3.Message10749.field10754:type_name -> benchmarks.google_message3.Message10748
+	55, // 31: benchmarks.google_message3.Message8298.field8321:type_name -> benchmarks.google_message3.Message7966
+	55, // 32: benchmarks.google_message3.Message8300.field8327:type_name -> benchmarks.google_message3.Message7966
+	56, // 33: benchmarks.google_message3.Message8291.field8310:type_name -> benchmarks.google_message3.Enum8292
+	55, // 34: benchmarks.google_message3.Message8296.field8311:type_name -> benchmarks.google_message3.Message7966
+	55, // 35: benchmarks.google_message3.Message8296.field8313:type_name -> benchmarks.google_message3.Message7966
+	57, // 36: benchmarks.google_message3.Message713.field852:type_name -> benchmarks.google_message3.Message708
+	45, // 37: benchmarks.google_message3.Message711.field839:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	39, // 38: benchmarks.google_message3.Message8939.message8940:type_name -> benchmarks.google_message3.Message8939.Message8940
+	40, // 39: benchmarks.google_message3.Message8939.message8941:type_name -> benchmarks.google_message3.Message8939.Message8941
+	58, // 40: benchmarks.google_message3.Message8939.field9020:type_name -> benchmarks.google_message3.Message8942
+	45, // 41: benchmarks.google_message3.Message8939.field9021:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	44, // 42: benchmarks.google_message3.Message8939.field9029:type_name -> benchmarks.google_message3.UnusedEnum
+	44, // 43: benchmarks.google_message3.Message8939.field9030:type_name -> benchmarks.google_message3.UnusedEnum
+	41, // 44: benchmarks.google_message3.Message8939.message8943:type_name -> benchmarks.google_message3.Message8939.Message8943
+	59, // 45: benchmarks.google_message3.Message8888.field8909:type_name -> benchmarks.google_message3.Enum8900
+	45, // 46: benchmarks.google_message3.Message11013.field11778:type_name -> benchmarks.google_message3.UnusedEmptyMessage
+	60, // 47: benchmarks.google_message3.Message11013.field11779:type_name -> benchmarks.google_message3.Message11011
+	48, // [48:48] is the sub-list for method output_type
+	48, // [48:48] is the sub-list for method input_type
+	48, // [48:48] is the sub-list for extension type_name
+	48, // [48:48] is the sub-list for extension extendee
+	0,  // [0:48] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_6_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_7.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_7.pb.go
index 6aaaa5f..3453667 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_7.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_7.pb.go
@@ -591,12 +591,12 @@
 	(*Message741)(nil),         // 9: benchmarks.google_message3.Message741
 }
 var file_datasets_google_message3_benchmark_message3_7_proto_depIdxs = []int32{
-	9, // benchmarks.google_message3.Message708.field823:type_name -> benchmarks.google_message3.Message741
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	1, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	9, // 0: benchmarks.google_message3.Message708.field823:type_name -> benchmarks.google_message3.Message741
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_7_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_8.pb.go b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_8.pb.go
index 823525f..8e08720 100644
--- a/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_8.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message3/benchmark_message3_8.pb.go
@@ -10534,11 +10534,11 @@
 	(Enum36890)(0),  // 58: benchmarks.google_message3.Enum36890
 }
 var file_datasets_google_message3_benchmark_message3_8_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message3_benchmark_message3_8_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4.pb.go b/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4.pb.go
index 9406554..230f405 100644
--- a/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4.pb.go
@@ -5227,146 +5227,146 @@
 	(Enum3071)(0),                   // 69: benchmarks.google_message4.Enum3071
 }
 var file_datasets_google_message4_benchmark_message4_proto_depIdxs = []int32{
-	45,  // benchmarks.google_message4.GoogleMessage4.field37504:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37505:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37506:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37507:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	1,   // benchmarks.google_message4.GoogleMessage4.field37508:type_name -> benchmarks.google_message4.Message37489
-	45,  // benchmarks.google_message4.GoogleMessage4.field37509:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37510:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37511:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37512:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37513:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37514:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37515:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37516:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37517:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.GoogleMessage4.field37518:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	21,  // benchmarks.google_message4.Message37489.field37534:type_name -> benchmarks.google_message4.Message2517
-	6,   // benchmarks.google_message4.Message37489.field37535:type_name -> benchmarks.google_message4.Message7330
-	5,   // benchmarks.google_message4.Message37489.field37536:type_name -> benchmarks.google_message4.Message8815
-	9,   // benchmarks.google_message4.Message37489.field37537:type_name -> benchmarks.google_message4.Message8817
-	10,  // benchmarks.google_message4.Message37489.field37538:type_name -> benchmarks.google_message4.Message8835
-	14,  // benchmarks.google_message4.Message37489.field37539:type_name -> benchmarks.google_message4.Message8848
-	16,  // benchmarks.google_message4.Message37489.field37540:type_name -> benchmarks.google_message4.Message8856
-	3,   // benchmarks.google_message4.Message37489.field37541:type_name -> benchmarks.google_message4.Message12717
-	22,  // benchmarks.google_message4.Message37489.field37542:type_name -> benchmarks.google_message4.Message12748
-	2,   // benchmarks.google_message4.Message37489.field37543:type_name -> benchmarks.google_message4.Message7319
-	17,  // benchmarks.google_message4.Message37489.field37544:type_name -> benchmarks.google_message4.Message12908
-	18,  // benchmarks.google_message4.Message37489.field37545:type_name -> benchmarks.google_message4.Message12910
-	7,   // benchmarks.google_message4.Message37489.field37546:type_name -> benchmarks.google_message4.Message12960
-	8,   // benchmarks.google_message4.Message37489.field37547:type_name -> benchmarks.google_message4.Message176
-	12,  // benchmarks.google_message4.Message37489.field37548:type_name -> benchmarks.google_message4.Message13000
-	15,  // benchmarks.google_message4.Message37489.field37549:type_name -> benchmarks.google_message4.Message13035
-	4,   // benchmarks.google_message4.Message37489.field37550:type_name -> benchmarks.google_message4.Message37331
-	20,  // benchmarks.google_message4.Message37489.field37551:type_name -> benchmarks.google_message4.Message37329
-	19,  // benchmarks.google_message4.Message37489.field37552:type_name -> benchmarks.google_message4.Message37327
-	11,  // benchmarks.google_message4.Message37489.field37553:type_name -> benchmarks.google_message4.Message37333
-	13,  // benchmarks.google_message4.Message37489.field37554:type_name -> benchmarks.google_message4.Message37335
-	45,  // benchmarks.google_message4.Message7319.field7321:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message7319.field7322:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message12717.field12719:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	25,  // benchmarks.google_message4.Message12717.field12722:type_name -> benchmarks.google_message4.Message11976
-	24,  // benchmarks.google_message4.Message12717.field12723:type_name -> benchmarks.google_message4.Message11948
-	46,  // benchmarks.google_message4.Message12717.field12724:type_name -> benchmarks.google_message4.Message11947
-	23,  // benchmarks.google_message4.Message12717.field12725:type_name -> benchmarks.google_message4.Message12687
-	24,  // benchmarks.google_message4.Message12717.field12726:type_name -> benchmarks.google_message4.Message11948
-	45,  // benchmarks.google_message4.Message37331.field37367:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	36,  // benchmarks.google_message4.Message37331.field37368:type_name -> benchmarks.google_message4.Message37326
-	45,  // benchmarks.google_message4.Message8815.field8819:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	29,  // benchmarks.google_message4.Message8815.field8820:type_name -> benchmarks.google_message4.Message8768
-	45,  // benchmarks.google_message4.Message7330.field7332:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	27,  // benchmarks.google_message4.Message7330.field7333:type_name -> benchmarks.google_message4.Message3069
-	26,  // benchmarks.google_message4.Message7330.field7334:type_name -> benchmarks.google_message4.Message7320
-	45,  // benchmarks.google_message4.Message7330.field7335:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message12960.field12962:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	28,  // benchmarks.google_message4.Message12960.field12963:type_name -> benchmarks.google_message4.Message12948
-	45,  // benchmarks.google_message4.Message176.field424:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message176.field440:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message176.field450:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message176.field451:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	47,  // benchmarks.google_message4.Message176.field452:type_name -> benchmarks.google_message4.UnusedEnum
-	47,  // benchmarks.google_message4.Message176.field455:type_name -> benchmarks.google_message4.UnusedEnum
-	47,  // benchmarks.google_message4.Message176.field456:type_name -> benchmarks.google_message4.UnusedEnum
-	40,  // benchmarks.google_message4.Message176.message178:type_name -> benchmarks.google_message4.Message176.Message178
-	45,  // benchmarks.google_message4.Message176.field462:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message176.field463:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	47,  // benchmarks.google_message4.Message176.field464:type_name -> benchmarks.google_message4.UnusedEnum
-	45,  // benchmarks.google_message4.Message176.field466:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message8817.field8825:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	29,  // benchmarks.google_message4.Message8817.field8826:type_name -> benchmarks.google_message4.Message8768
-	45,  // benchmarks.google_message4.Message8835.field8837:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	47,  // benchmarks.google_message4.Message8835.field8839:type_name -> benchmarks.google_message4.UnusedEnum
-	45,  // benchmarks.google_message4.Message37333.field37372:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	36,  // benchmarks.google_message4.Message37333.field37373:type_name -> benchmarks.google_message4.Message37326
-	30,  // benchmarks.google_message4.Message13000.field13016:type_name -> benchmarks.google_message4.Message12979
-	45,  // benchmarks.google_message4.Message37335.field37376:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	36,  // benchmarks.google_message4.Message37335.field37377:type_name -> benchmarks.google_message4.Message37326
-	31,  // benchmarks.google_message4.Message37335.field37378:type_name -> benchmarks.google_message4.Message37173
-	45,  // benchmarks.google_message4.Message8848.field8850:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message8856.field8858:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message12908.field12912:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	32,  // benchmarks.google_message4.Message12908.field12914:type_name -> benchmarks.google_message4.Message12799
-	34,  // benchmarks.google_message4.Message12908.field12916:type_name -> benchmarks.google_message4.Message3804
-	33,  // benchmarks.google_message4.Message12908.field12917:type_name -> benchmarks.google_message4.Message12870
-	45,  // benchmarks.google_message4.Message12910.field12920:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	48,  // benchmarks.google_message4.Message12910.field12921:type_name -> benchmarks.google_message4.Message12818
-	35,  // benchmarks.google_message4.Message12910.field12922:type_name -> benchmarks.google_message4.Message12903
-	45,  // benchmarks.google_message4.Message37327.field37347:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	36,  // benchmarks.google_message4.Message37327.field37348:type_name -> benchmarks.google_message4.Message37326
-	45,  // benchmarks.google_message4.Message37327.field37354:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message37329.field37359:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	36,  // benchmarks.google_message4.Message37329.field37360:type_name -> benchmarks.google_message4.Message37326
-	45,  // benchmarks.google_message4.Message2517.field2519:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	37,  // benchmarks.google_message4.Message2517.field2520:type_name -> benchmarks.google_message4.Message2356
-	38,  // benchmarks.google_message4.Message2517.field2521:type_name -> benchmarks.google_message4.Message0
-	49,  // benchmarks.google_message4.Message2517.field2522:type_name -> benchmarks.google_message4.Message2463
-	39,  // benchmarks.google_message4.Message2517.field2523:type_name -> benchmarks.google_message4.Message971
-	45,  // benchmarks.google_message4.Message12748.field12754:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	50,  // benchmarks.google_message4.Message12748.field12757:type_name -> benchmarks.google_message4.Enum12735
-	51,  // benchmarks.google_message4.Message12687.field12701:type_name -> benchmarks.google_message4.Message12686
-	52,  // benchmarks.google_message4.Message11948.field11955:type_name -> benchmarks.google_message4.Message11949
-	53,  // benchmarks.google_message4.Message11976.field12002:type_name -> benchmarks.google_message4.Message11975
-	45,  // benchmarks.google_message4.Message7320.field7323:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	54,  // benchmarks.google_message4.Message7320.field7324:type_name -> benchmarks.google_message4.Message7287
-	55,  // benchmarks.google_message4.Message3069.field3374:type_name -> benchmarks.google_message4.Message3061
-	41,  // benchmarks.google_message4.Message3069.message3070:type_name -> benchmarks.google_message4.Message3069.Message3070
-	56,  // benchmarks.google_message4.Message12948.field12958:type_name -> benchmarks.google_message4.Message12949
-	57,  // benchmarks.google_message4.Message8768.field8783:type_name -> benchmarks.google_message4.Message8572
-	58,  // benchmarks.google_message4.Message8768.field8785:type_name -> benchmarks.google_message4.Message8774
-	45,  // benchmarks.google_message4.Message8768.field8787:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message12979.field12983:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message12979.field12987:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	47,  // benchmarks.google_message4.Message37173.field37254:type_name -> benchmarks.google_message4.UnusedEnum
-	45,  // benchmarks.google_message4.Message37173.field37270:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message37173.field37271:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message37173.field37272:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message37173.field37273:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message37173.field37274:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	59,  // benchmarks.google_message4.Message12799.field12811:type_name -> benchmarks.google_message4.Message12776
-	60,  // benchmarks.google_message4.Message12799.field12813:type_name -> benchmarks.google_message4.Message12798
-	61,  // benchmarks.google_message4.Message12799.field12816:type_name -> benchmarks.google_message4.Message12797
-	33,  // benchmarks.google_message4.Message12870.field12888:type_name -> benchmarks.google_message4.Message12870
-	62,  // benchmarks.google_message4.Message12870.field12894:type_name -> benchmarks.google_message4.Message12825
-	63,  // benchmarks.google_message4.Message12870.field12897:type_name -> benchmarks.google_message4.Enum12871
-	64,  // benchmarks.google_message4.Message3804.field3820:type_name -> benchmarks.google_message4.Enum3805
-	65,  // benchmarks.google_message4.Message3804.field3824:type_name -> benchmarks.google_message4.Enum3783
-	66,  // benchmarks.google_message4.Message12903.field12906:type_name -> benchmarks.google_message4.Message8587
-	67,  // benchmarks.google_message4.Message12903.field12907:type_name -> benchmarks.google_message4.Message8590
-	68,  // benchmarks.google_message4.Message2356.field2368:type_name -> benchmarks.google_message4.Message1374
-	42,  // benchmarks.google_message4.Message2356.message2357:type_name -> benchmarks.google_message4.Message2356.Message2357
-	43,  // benchmarks.google_message4.Message2356.message2358:type_name -> benchmarks.google_message4.Message2356.Message2358
-	44,  // benchmarks.google_message4.Message2356.message2359:type_name -> benchmarks.google_message4.Message2356.Message2359
-	45,  // benchmarks.google_message4.Message2356.field2393:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message2356.field2394:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message2356.field2395:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message2356.field2396:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	69,  // benchmarks.google_message4.Message3069.Message3070.field3378:type_name -> benchmarks.google_message4.Enum3071
-	135, // starting offset of method output_type sub-list
-	135, // starting offset of method input_type sub-list
-	135, // starting offset of extension type_name sub-list
-	135, // starting offset of extension extendee sub-list
-	0,   // starting offset of field type_name sub-list
+	45,  // 0: benchmarks.google_message4.GoogleMessage4.field37504:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 1: benchmarks.google_message4.GoogleMessage4.field37505:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 2: benchmarks.google_message4.GoogleMessage4.field37506:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 3: benchmarks.google_message4.GoogleMessage4.field37507:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	1,   // 4: benchmarks.google_message4.GoogleMessage4.field37508:type_name -> benchmarks.google_message4.Message37489
+	45,  // 5: benchmarks.google_message4.GoogleMessage4.field37509:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 6: benchmarks.google_message4.GoogleMessage4.field37510:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 7: benchmarks.google_message4.GoogleMessage4.field37511:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 8: benchmarks.google_message4.GoogleMessage4.field37512:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 9: benchmarks.google_message4.GoogleMessage4.field37513:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 10: benchmarks.google_message4.GoogleMessage4.field37514:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 11: benchmarks.google_message4.GoogleMessage4.field37515:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 12: benchmarks.google_message4.GoogleMessage4.field37516:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 13: benchmarks.google_message4.GoogleMessage4.field37517:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 14: benchmarks.google_message4.GoogleMessage4.field37518:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	21,  // 15: benchmarks.google_message4.Message37489.field37534:type_name -> benchmarks.google_message4.Message2517
+	6,   // 16: benchmarks.google_message4.Message37489.field37535:type_name -> benchmarks.google_message4.Message7330
+	5,   // 17: benchmarks.google_message4.Message37489.field37536:type_name -> benchmarks.google_message4.Message8815
+	9,   // 18: benchmarks.google_message4.Message37489.field37537:type_name -> benchmarks.google_message4.Message8817
+	10,  // 19: benchmarks.google_message4.Message37489.field37538:type_name -> benchmarks.google_message4.Message8835
+	14,  // 20: benchmarks.google_message4.Message37489.field37539:type_name -> benchmarks.google_message4.Message8848
+	16,  // 21: benchmarks.google_message4.Message37489.field37540:type_name -> benchmarks.google_message4.Message8856
+	3,   // 22: benchmarks.google_message4.Message37489.field37541:type_name -> benchmarks.google_message4.Message12717
+	22,  // 23: benchmarks.google_message4.Message37489.field37542:type_name -> benchmarks.google_message4.Message12748
+	2,   // 24: benchmarks.google_message4.Message37489.field37543:type_name -> benchmarks.google_message4.Message7319
+	17,  // 25: benchmarks.google_message4.Message37489.field37544:type_name -> benchmarks.google_message4.Message12908
+	18,  // 26: benchmarks.google_message4.Message37489.field37545:type_name -> benchmarks.google_message4.Message12910
+	7,   // 27: benchmarks.google_message4.Message37489.field37546:type_name -> benchmarks.google_message4.Message12960
+	8,   // 28: benchmarks.google_message4.Message37489.field37547:type_name -> benchmarks.google_message4.Message176
+	12,  // 29: benchmarks.google_message4.Message37489.field37548:type_name -> benchmarks.google_message4.Message13000
+	15,  // 30: benchmarks.google_message4.Message37489.field37549:type_name -> benchmarks.google_message4.Message13035
+	4,   // 31: benchmarks.google_message4.Message37489.field37550:type_name -> benchmarks.google_message4.Message37331
+	20,  // 32: benchmarks.google_message4.Message37489.field37551:type_name -> benchmarks.google_message4.Message37329
+	19,  // 33: benchmarks.google_message4.Message37489.field37552:type_name -> benchmarks.google_message4.Message37327
+	11,  // 34: benchmarks.google_message4.Message37489.field37553:type_name -> benchmarks.google_message4.Message37333
+	13,  // 35: benchmarks.google_message4.Message37489.field37554:type_name -> benchmarks.google_message4.Message37335
+	45,  // 36: benchmarks.google_message4.Message7319.field7321:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 37: benchmarks.google_message4.Message7319.field7322:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 38: benchmarks.google_message4.Message12717.field12719:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	25,  // 39: benchmarks.google_message4.Message12717.field12722:type_name -> benchmarks.google_message4.Message11976
+	24,  // 40: benchmarks.google_message4.Message12717.field12723:type_name -> benchmarks.google_message4.Message11948
+	46,  // 41: benchmarks.google_message4.Message12717.field12724:type_name -> benchmarks.google_message4.Message11947
+	23,  // 42: benchmarks.google_message4.Message12717.field12725:type_name -> benchmarks.google_message4.Message12687
+	24,  // 43: benchmarks.google_message4.Message12717.field12726:type_name -> benchmarks.google_message4.Message11948
+	45,  // 44: benchmarks.google_message4.Message37331.field37367:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	36,  // 45: benchmarks.google_message4.Message37331.field37368:type_name -> benchmarks.google_message4.Message37326
+	45,  // 46: benchmarks.google_message4.Message8815.field8819:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	29,  // 47: benchmarks.google_message4.Message8815.field8820:type_name -> benchmarks.google_message4.Message8768
+	45,  // 48: benchmarks.google_message4.Message7330.field7332:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	27,  // 49: benchmarks.google_message4.Message7330.field7333:type_name -> benchmarks.google_message4.Message3069
+	26,  // 50: benchmarks.google_message4.Message7330.field7334:type_name -> benchmarks.google_message4.Message7320
+	45,  // 51: benchmarks.google_message4.Message7330.field7335:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 52: benchmarks.google_message4.Message12960.field12962:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	28,  // 53: benchmarks.google_message4.Message12960.field12963:type_name -> benchmarks.google_message4.Message12948
+	45,  // 54: benchmarks.google_message4.Message176.field424:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 55: benchmarks.google_message4.Message176.field440:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 56: benchmarks.google_message4.Message176.field450:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 57: benchmarks.google_message4.Message176.field451:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	47,  // 58: benchmarks.google_message4.Message176.field452:type_name -> benchmarks.google_message4.UnusedEnum
+	47,  // 59: benchmarks.google_message4.Message176.field455:type_name -> benchmarks.google_message4.UnusedEnum
+	47,  // 60: benchmarks.google_message4.Message176.field456:type_name -> benchmarks.google_message4.UnusedEnum
+	40,  // 61: benchmarks.google_message4.Message176.message178:type_name -> benchmarks.google_message4.Message176.Message178
+	45,  // 62: benchmarks.google_message4.Message176.field462:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 63: benchmarks.google_message4.Message176.field463:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	47,  // 64: benchmarks.google_message4.Message176.field464:type_name -> benchmarks.google_message4.UnusedEnum
+	45,  // 65: benchmarks.google_message4.Message176.field466:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 66: benchmarks.google_message4.Message8817.field8825:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	29,  // 67: benchmarks.google_message4.Message8817.field8826:type_name -> benchmarks.google_message4.Message8768
+	45,  // 68: benchmarks.google_message4.Message8835.field8837:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	47,  // 69: benchmarks.google_message4.Message8835.field8839:type_name -> benchmarks.google_message4.UnusedEnum
+	45,  // 70: benchmarks.google_message4.Message37333.field37372:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	36,  // 71: benchmarks.google_message4.Message37333.field37373:type_name -> benchmarks.google_message4.Message37326
+	30,  // 72: benchmarks.google_message4.Message13000.field13016:type_name -> benchmarks.google_message4.Message12979
+	45,  // 73: benchmarks.google_message4.Message37335.field37376:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	36,  // 74: benchmarks.google_message4.Message37335.field37377:type_name -> benchmarks.google_message4.Message37326
+	31,  // 75: benchmarks.google_message4.Message37335.field37378:type_name -> benchmarks.google_message4.Message37173
+	45,  // 76: benchmarks.google_message4.Message8848.field8850:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 77: benchmarks.google_message4.Message8856.field8858:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 78: benchmarks.google_message4.Message12908.field12912:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	32,  // 79: benchmarks.google_message4.Message12908.field12914:type_name -> benchmarks.google_message4.Message12799
+	34,  // 80: benchmarks.google_message4.Message12908.field12916:type_name -> benchmarks.google_message4.Message3804
+	33,  // 81: benchmarks.google_message4.Message12908.field12917:type_name -> benchmarks.google_message4.Message12870
+	45,  // 82: benchmarks.google_message4.Message12910.field12920:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	48,  // 83: benchmarks.google_message4.Message12910.field12921:type_name -> benchmarks.google_message4.Message12818
+	35,  // 84: benchmarks.google_message4.Message12910.field12922:type_name -> benchmarks.google_message4.Message12903
+	45,  // 85: benchmarks.google_message4.Message37327.field37347:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	36,  // 86: benchmarks.google_message4.Message37327.field37348:type_name -> benchmarks.google_message4.Message37326
+	45,  // 87: benchmarks.google_message4.Message37327.field37354:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 88: benchmarks.google_message4.Message37329.field37359:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	36,  // 89: benchmarks.google_message4.Message37329.field37360:type_name -> benchmarks.google_message4.Message37326
+	45,  // 90: benchmarks.google_message4.Message2517.field2519:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	37,  // 91: benchmarks.google_message4.Message2517.field2520:type_name -> benchmarks.google_message4.Message2356
+	38,  // 92: benchmarks.google_message4.Message2517.field2521:type_name -> benchmarks.google_message4.Message0
+	49,  // 93: benchmarks.google_message4.Message2517.field2522:type_name -> benchmarks.google_message4.Message2463
+	39,  // 94: benchmarks.google_message4.Message2517.field2523:type_name -> benchmarks.google_message4.Message971
+	45,  // 95: benchmarks.google_message4.Message12748.field12754:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	50,  // 96: benchmarks.google_message4.Message12748.field12757:type_name -> benchmarks.google_message4.Enum12735
+	51,  // 97: benchmarks.google_message4.Message12687.field12701:type_name -> benchmarks.google_message4.Message12686
+	52,  // 98: benchmarks.google_message4.Message11948.field11955:type_name -> benchmarks.google_message4.Message11949
+	53,  // 99: benchmarks.google_message4.Message11976.field12002:type_name -> benchmarks.google_message4.Message11975
+	45,  // 100: benchmarks.google_message4.Message7320.field7323:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	54,  // 101: benchmarks.google_message4.Message7320.field7324:type_name -> benchmarks.google_message4.Message7287
+	55,  // 102: benchmarks.google_message4.Message3069.field3374:type_name -> benchmarks.google_message4.Message3061
+	41,  // 103: benchmarks.google_message4.Message3069.message3070:type_name -> benchmarks.google_message4.Message3069.Message3070
+	56,  // 104: benchmarks.google_message4.Message12948.field12958:type_name -> benchmarks.google_message4.Message12949
+	57,  // 105: benchmarks.google_message4.Message8768.field8783:type_name -> benchmarks.google_message4.Message8572
+	58,  // 106: benchmarks.google_message4.Message8768.field8785:type_name -> benchmarks.google_message4.Message8774
+	45,  // 107: benchmarks.google_message4.Message8768.field8787:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 108: benchmarks.google_message4.Message12979.field12983:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 109: benchmarks.google_message4.Message12979.field12987:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	47,  // 110: benchmarks.google_message4.Message37173.field37254:type_name -> benchmarks.google_message4.UnusedEnum
+	45,  // 111: benchmarks.google_message4.Message37173.field37270:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 112: benchmarks.google_message4.Message37173.field37271:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 113: benchmarks.google_message4.Message37173.field37272:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 114: benchmarks.google_message4.Message37173.field37273:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 115: benchmarks.google_message4.Message37173.field37274:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	59,  // 116: benchmarks.google_message4.Message12799.field12811:type_name -> benchmarks.google_message4.Message12776
+	60,  // 117: benchmarks.google_message4.Message12799.field12813:type_name -> benchmarks.google_message4.Message12798
+	61,  // 118: benchmarks.google_message4.Message12799.field12816:type_name -> benchmarks.google_message4.Message12797
+	33,  // 119: benchmarks.google_message4.Message12870.field12888:type_name -> benchmarks.google_message4.Message12870
+	62,  // 120: benchmarks.google_message4.Message12870.field12894:type_name -> benchmarks.google_message4.Message12825
+	63,  // 121: benchmarks.google_message4.Message12870.field12897:type_name -> benchmarks.google_message4.Enum12871
+	64,  // 122: benchmarks.google_message4.Message3804.field3820:type_name -> benchmarks.google_message4.Enum3805
+	65,  // 123: benchmarks.google_message4.Message3804.field3824:type_name -> benchmarks.google_message4.Enum3783
+	66,  // 124: benchmarks.google_message4.Message12903.field12906:type_name -> benchmarks.google_message4.Message8587
+	67,  // 125: benchmarks.google_message4.Message12903.field12907:type_name -> benchmarks.google_message4.Message8590
+	68,  // 126: benchmarks.google_message4.Message2356.field2368:type_name -> benchmarks.google_message4.Message1374
+	42,  // 127: benchmarks.google_message4.Message2356.message2357:type_name -> benchmarks.google_message4.Message2356.Message2357
+	43,  // 128: benchmarks.google_message4.Message2356.message2358:type_name -> benchmarks.google_message4.Message2356.Message2358
+	44,  // 129: benchmarks.google_message4.Message2356.message2359:type_name -> benchmarks.google_message4.Message2356.Message2359
+	45,  // 130: benchmarks.google_message4.Message2356.field2393:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 131: benchmarks.google_message4.Message2356.field2394:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 132: benchmarks.google_message4.Message2356.field2395:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 133: benchmarks.google_message4.Message2356.field2396:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	69,  // 134: benchmarks.google_message4.Message3069.Message3070.field3378:type_name -> benchmarks.google_message4.Enum3071
+	135, // [135:135] is the sub-list for method output_type
+	135, // [135:135] is the sub-list for method input_type
+	135, // [135:135] is the sub-list for extension type_name
+	135, // [135:135] is the sub-list for extension extendee
+	0,   // [0:135] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message4_benchmark_message4_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_1.pb.go b/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_1.pb.go
index 7403ce2..537999d 100644
--- a/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_1.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_1.pb.go
@@ -5358,128 +5358,128 @@
 	(*Message3850)(nil),             // 79: benchmarks.google_message4.Message3850
 }
 var file_datasets_google_message4_benchmark_message4_1_proto_depIdxs = []int32{
-	16,  // benchmarks.google_message4.Message2463.field2498:type_name -> benchmarks.google_message4.Message2462
-	17,  // benchmarks.google_message4.Message12686.field12700:type_name -> benchmarks.google_message4.Message12685
-	18,  // benchmarks.google_message4.Message11975.field11994:type_name -> benchmarks.google_message4.Message10320
-	19,  // benchmarks.google_message4.Message11975.field11995:type_name -> benchmarks.google_message4.Message11947
-	20,  // benchmarks.google_message4.Message11975.field11996:type_name -> benchmarks.google_message4.Message11920
-	44,  // benchmarks.google_message4.Message11975.field12000:type_name -> benchmarks.google_message4.UnusedEnum
-	22,  // benchmarks.google_message4.Message7287.field7311:type_name -> benchmarks.google_message4.Message6133
-	45,  // benchmarks.google_message4.Message7287.field7312:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	21,  // benchmarks.google_message4.Message7287.field7314:type_name -> benchmarks.google_message4.Message6643
-	46,  // benchmarks.google_message4.Message7287.field7315:type_name -> benchmarks.google_message4.Enum7288
-	45,  // benchmarks.google_message4.Message7287.field7317:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message7287.field7318:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	24,  // benchmarks.google_message4.Message3061.field3289:type_name -> benchmarks.google_message4.Message3046
-	24,  // benchmarks.google_message4.Message3061.field3290:type_name -> benchmarks.google_message4.Message3046
-	38,  // benchmarks.google_message4.Message3061.message3062:type_name -> benchmarks.google_message4.Message3061.Message3062
-	25,  // benchmarks.google_message4.Message3061.field3292:type_name -> benchmarks.google_message4.Message3060
-	39,  // benchmarks.google_message4.Message3061.message3063:type_name -> benchmarks.google_message4.Message3061.Message3063
-	47,  // benchmarks.google_message4.Message3061.field3296:type_name -> benchmarks.google_message4.Enum2834
-	28,  // benchmarks.google_message4.Message3061.field3302:type_name -> benchmarks.google_message4.Message3050
-	48,  // benchmarks.google_message4.Message3061.field3310:type_name -> benchmarks.google_message4.Enum2806
-	40,  // benchmarks.google_message4.Message3061.message3064:type_name -> benchmarks.google_message4.Message3061.Message3064
-	45,  // benchmarks.google_message4.Message3061.field3315:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	41,  // benchmarks.google_message4.Message3061.message3065:type_name -> benchmarks.google_message4.Message3061.Message3065
-	48,  // benchmarks.google_message4.Message3061.field3318:type_name -> benchmarks.google_message4.Enum2806
-	27,  // benchmarks.google_message4.Message3061.field3325:type_name -> benchmarks.google_message4.Message3040
-	26,  // benchmarks.google_message4.Message3061.field3326:type_name -> benchmarks.google_message4.Message3041
-	42,  // benchmarks.google_message4.Message3061.message3066:type_name -> benchmarks.google_message4.Message3061.Message3066
-	45,  // benchmarks.google_message4.Message3061.field3328:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message3061.field3329:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message3061.field3331:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message3061.field3332:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	30,  // benchmarks.google_message4.Message8572.field8649:type_name -> benchmarks.google_message4.Message3886
-	36,  // benchmarks.google_message4.Message8572.field8650:type_name -> benchmarks.google_message4.Message3919
-	29,  // benchmarks.google_message4.Message8572.field8654:type_name -> benchmarks.google_message4.Message7905
-	45,  // benchmarks.google_message4.Message8572.field8656:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message8572.field8660:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message8572.field8662:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	49,  // benchmarks.google_message4.Message8572.field8666:type_name -> benchmarks.google_message4.Enum3476
-	45,  // benchmarks.google_message4.Message8572.field8668:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	33,  // benchmarks.google_message4.Message8572.field8671:type_name -> benchmarks.google_message4.Message3052
-	32,  // benchmarks.google_message4.Message8572.field8682:type_name -> benchmarks.google_message4.Message3922
-	45,  // benchmarks.google_message4.Message8572.field8683:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	37,  // benchmarks.google_message4.Message8572.field8685:type_name -> benchmarks.google_message4.Message7929
-	35,  // benchmarks.google_message4.Message8572.field8688:type_name -> benchmarks.google_message4.Message7843
-	31,  // benchmarks.google_message4.Message8572.field8689:type_name -> benchmarks.google_message4.Message7864
-	45,  // benchmarks.google_message4.Message8572.field8690:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message8572.field8694:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message8572.field8695:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	34,  // benchmarks.google_message4.Message8572.field8696:type_name -> benchmarks.google_message4.Message8575
-	45,  // benchmarks.google_message4.Message12776.field12793:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	50,  // benchmarks.google_message4.Message12776.field12794:type_name -> benchmarks.google_message4.Message12774
-	45,  // benchmarks.google_message4.Message12776.field12795:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	50,  // benchmarks.google_message4.Message12798.field12807:type_name -> benchmarks.google_message4.Message12774
-	51,  // benchmarks.google_message4.Message12797.field12802:type_name -> benchmarks.google_message4.Message12796
-	51,  // benchmarks.google_message4.Message12797.field12803:type_name -> benchmarks.google_message4.Message12796
-	52,  // benchmarks.google_message4.Message12825.field12862:type_name -> benchmarks.google_message4.Message12818
-	53,  // benchmarks.google_message4.Message12825.field12864:type_name -> benchmarks.google_message4.Message12819
-	54,  // benchmarks.google_message4.Message12825.field12865:type_name -> benchmarks.google_message4.Message12820
-	55,  // benchmarks.google_message4.Message12825.field12867:type_name -> benchmarks.google_message4.Message12821
-	45,  // benchmarks.google_message4.Message12825.field12868:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	56,  // benchmarks.google_message4.Message10320.field10347:type_name -> benchmarks.google_message4.Enum10335
-	57,  // benchmarks.google_message4.Message10320.field10348:type_name -> benchmarks.google_message4.Message10319
-	58,  // benchmarks.google_message4.Message10320.field10353:type_name -> benchmarks.google_message4.Enum10337
-	59,  // benchmarks.google_message4.Message11920.field11945:type_name -> benchmarks.google_message4.Enum11901
-	44,  // benchmarks.google_message4.Message11920.field11946:type_name -> benchmarks.google_message4.UnusedEnum
-	45,  // benchmarks.google_message4.Message6643.field6683:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message6643.field6684:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	60,  // benchmarks.google_message4.Message6643.field6694:type_name -> benchmarks.google_message4.Message6578
-	44,  // benchmarks.google_message4.Message6643.field6695:type_name -> benchmarks.google_message4.UnusedEnum
-	45,  // benchmarks.google_message4.Message6643.field6697:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message6643.field6698:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message6643.field6699:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	61,  // benchmarks.google_message4.Message6133.field6173:type_name -> benchmarks.google_message4.Message4016
-	23,  // benchmarks.google_message4.Message6133.field6180:type_name -> benchmarks.google_message4.Message6109
-	62,  // benchmarks.google_message4.Message6133.field6181:type_name -> benchmarks.google_message4.Message5908
-	63,  // benchmarks.google_message4.Message6133.field6182:type_name -> benchmarks.google_message4.Message6107
-	64,  // benchmarks.google_message4.Message6133.field6183:type_name -> benchmarks.google_message4.Message6126
-	65,  // benchmarks.google_message4.Message6133.field6184:type_name -> benchmarks.google_message4.Message6129
-	61,  // benchmarks.google_message4.Message6133.field6187:type_name -> benchmarks.google_message4.Message4016
-	66,  // benchmarks.google_message4.Message6133.field6192:type_name -> benchmarks.google_message4.Message5881
-	67,  // benchmarks.google_message4.Message6109.field6141:type_name -> benchmarks.google_message4.Enum6111
-	68,  // benchmarks.google_message4.Message6109.field6144:type_name -> benchmarks.google_message4.Message6110
-	22,  // benchmarks.google_message4.Message6109.field6147:type_name -> benchmarks.google_message4.Message6133
-	69,  // benchmarks.google_message4.Message3046.field3222:type_name -> benchmarks.google_message4.Enum2593
-	43,  // benchmarks.google_message4.Message3886.message3887:type_name -> benchmarks.google_message4.Message3886.Message3887
-	70,  // benchmarks.google_message4.Message7864.field7868:type_name -> benchmarks.google_message4.Message7865
-	70,  // benchmarks.google_message4.Message7864.field7869:type_name -> benchmarks.google_message4.Message7865
-	70,  // benchmarks.google_message4.Message7864.field7870:type_name -> benchmarks.google_message4.Message7865
-	45,  // benchmarks.google_message4.Message7864.field7871:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message7843.field7846:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	44,  // benchmarks.google_message4.Message7843.field7849:type_name -> benchmarks.google_message4.UnusedEnum
-	45,  // benchmarks.google_message4.Message7843.field7850:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message7843.field7851:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message7843.field7852:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	71,  // benchmarks.google_message4.Message7843.field7853:type_name -> benchmarks.google_message4.Message7511
-	45,  // benchmarks.google_message4.Message7843.field7854:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message7843.field7855:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message7843.field7856:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message7843.field7857:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	44,  // benchmarks.google_message4.Message7843.field7858:type_name -> benchmarks.google_message4.UnusedEnum
-	72,  // benchmarks.google_message4.Message3919.field4009:type_name -> benchmarks.google_message4.Message3920
-	73,  // benchmarks.google_message4.Message7929.field7950:type_name -> benchmarks.google_message4.Message7919
-	45,  // benchmarks.google_message4.Message7929.field7951:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	74,  // benchmarks.google_message4.Message7929.field7952:type_name -> benchmarks.google_message4.Message7920
-	75,  // benchmarks.google_message4.Message7929.field7953:type_name -> benchmarks.google_message4.Message7921
-	76,  // benchmarks.google_message4.Message7929.field7954:type_name -> benchmarks.google_message4.Message7928
-	45,  // benchmarks.google_message4.Message7929.field7959:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	77,  // benchmarks.google_message4.Message3061.Message3063.field3339:type_name -> benchmarks.google_message4.Enum2851
-	78,  // benchmarks.google_message4.Message3061.Message3064.field3342:type_name -> benchmarks.google_message4.Enum2602
-	25,  // benchmarks.google_message4.Message3061.Message3064.field3347:type_name -> benchmarks.google_message4.Message3060
-	45,  // benchmarks.google_message4.Message3061.Message3064.field3348:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	28,  // benchmarks.google_message4.Message3061.Message3064.field3349:type_name -> benchmarks.google_message4.Message3050
-	48,  // benchmarks.google_message4.Message3061.Message3064.field3355:type_name -> benchmarks.google_message4.Enum2806
-	47,  // benchmarks.google_message4.Message3061.Message3064.field3360:type_name -> benchmarks.google_message4.Enum2834
-	45,  // benchmarks.google_message4.Message3061.Message3066.field3372:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	45,  // benchmarks.google_message4.Message3061.Message3066.field3373:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	79,  // benchmarks.google_message4.Message3886.Message3887.field3934:type_name -> benchmarks.google_message4.Message3850
-	117, // starting offset of method output_type sub-list
-	117, // starting offset of method input_type sub-list
-	117, // starting offset of extension type_name sub-list
-	117, // starting offset of extension extendee sub-list
-	0,   // starting offset of field type_name sub-list
+	16,  // 0: benchmarks.google_message4.Message2463.field2498:type_name -> benchmarks.google_message4.Message2462
+	17,  // 1: benchmarks.google_message4.Message12686.field12700:type_name -> benchmarks.google_message4.Message12685
+	18,  // 2: benchmarks.google_message4.Message11975.field11994:type_name -> benchmarks.google_message4.Message10320
+	19,  // 3: benchmarks.google_message4.Message11975.field11995:type_name -> benchmarks.google_message4.Message11947
+	20,  // 4: benchmarks.google_message4.Message11975.field11996:type_name -> benchmarks.google_message4.Message11920
+	44,  // 5: benchmarks.google_message4.Message11975.field12000:type_name -> benchmarks.google_message4.UnusedEnum
+	22,  // 6: benchmarks.google_message4.Message7287.field7311:type_name -> benchmarks.google_message4.Message6133
+	45,  // 7: benchmarks.google_message4.Message7287.field7312:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	21,  // 8: benchmarks.google_message4.Message7287.field7314:type_name -> benchmarks.google_message4.Message6643
+	46,  // 9: benchmarks.google_message4.Message7287.field7315:type_name -> benchmarks.google_message4.Enum7288
+	45,  // 10: benchmarks.google_message4.Message7287.field7317:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 11: benchmarks.google_message4.Message7287.field7318:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	24,  // 12: benchmarks.google_message4.Message3061.field3289:type_name -> benchmarks.google_message4.Message3046
+	24,  // 13: benchmarks.google_message4.Message3061.field3290:type_name -> benchmarks.google_message4.Message3046
+	38,  // 14: benchmarks.google_message4.Message3061.message3062:type_name -> benchmarks.google_message4.Message3061.Message3062
+	25,  // 15: benchmarks.google_message4.Message3061.field3292:type_name -> benchmarks.google_message4.Message3060
+	39,  // 16: benchmarks.google_message4.Message3061.message3063:type_name -> benchmarks.google_message4.Message3061.Message3063
+	47,  // 17: benchmarks.google_message4.Message3061.field3296:type_name -> benchmarks.google_message4.Enum2834
+	28,  // 18: benchmarks.google_message4.Message3061.field3302:type_name -> benchmarks.google_message4.Message3050
+	48,  // 19: benchmarks.google_message4.Message3061.field3310:type_name -> benchmarks.google_message4.Enum2806
+	40,  // 20: benchmarks.google_message4.Message3061.message3064:type_name -> benchmarks.google_message4.Message3061.Message3064
+	45,  // 21: benchmarks.google_message4.Message3061.field3315:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	41,  // 22: benchmarks.google_message4.Message3061.message3065:type_name -> benchmarks.google_message4.Message3061.Message3065
+	48,  // 23: benchmarks.google_message4.Message3061.field3318:type_name -> benchmarks.google_message4.Enum2806
+	27,  // 24: benchmarks.google_message4.Message3061.field3325:type_name -> benchmarks.google_message4.Message3040
+	26,  // 25: benchmarks.google_message4.Message3061.field3326:type_name -> benchmarks.google_message4.Message3041
+	42,  // 26: benchmarks.google_message4.Message3061.message3066:type_name -> benchmarks.google_message4.Message3061.Message3066
+	45,  // 27: benchmarks.google_message4.Message3061.field3328:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 28: benchmarks.google_message4.Message3061.field3329:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 29: benchmarks.google_message4.Message3061.field3331:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 30: benchmarks.google_message4.Message3061.field3332:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	30,  // 31: benchmarks.google_message4.Message8572.field8649:type_name -> benchmarks.google_message4.Message3886
+	36,  // 32: benchmarks.google_message4.Message8572.field8650:type_name -> benchmarks.google_message4.Message3919
+	29,  // 33: benchmarks.google_message4.Message8572.field8654:type_name -> benchmarks.google_message4.Message7905
+	45,  // 34: benchmarks.google_message4.Message8572.field8656:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 35: benchmarks.google_message4.Message8572.field8660:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 36: benchmarks.google_message4.Message8572.field8662:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	49,  // 37: benchmarks.google_message4.Message8572.field8666:type_name -> benchmarks.google_message4.Enum3476
+	45,  // 38: benchmarks.google_message4.Message8572.field8668:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	33,  // 39: benchmarks.google_message4.Message8572.field8671:type_name -> benchmarks.google_message4.Message3052
+	32,  // 40: benchmarks.google_message4.Message8572.field8682:type_name -> benchmarks.google_message4.Message3922
+	45,  // 41: benchmarks.google_message4.Message8572.field8683:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	37,  // 42: benchmarks.google_message4.Message8572.field8685:type_name -> benchmarks.google_message4.Message7929
+	35,  // 43: benchmarks.google_message4.Message8572.field8688:type_name -> benchmarks.google_message4.Message7843
+	31,  // 44: benchmarks.google_message4.Message8572.field8689:type_name -> benchmarks.google_message4.Message7864
+	45,  // 45: benchmarks.google_message4.Message8572.field8690:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 46: benchmarks.google_message4.Message8572.field8694:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 47: benchmarks.google_message4.Message8572.field8695:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	34,  // 48: benchmarks.google_message4.Message8572.field8696:type_name -> benchmarks.google_message4.Message8575
+	45,  // 49: benchmarks.google_message4.Message12776.field12793:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	50,  // 50: benchmarks.google_message4.Message12776.field12794:type_name -> benchmarks.google_message4.Message12774
+	45,  // 51: benchmarks.google_message4.Message12776.field12795:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	50,  // 52: benchmarks.google_message4.Message12798.field12807:type_name -> benchmarks.google_message4.Message12774
+	51,  // 53: benchmarks.google_message4.Message12797.field12802:type_name -> benchmarks.google_message4.Message12796
+	51,  // 54: benchmarks.google_message4.Message12797.field12803:type_name -> benchmarks.google_message4.Message12796
+	52,  // 55: benchmarks.google_message4.Message12825.field12862:type_name -> benchmarks.google_message4.Message12818
+	53,  // 56: benchmarks.google_message4.Message12825.field12864:type_name -> benchmarks.google_message4.Message12819
+	54,  // 57: benchmarks.google_message4.Message12825.field12865:type_name -> benchmarks.google_message4.Message12820
+	55,  // 58: benchmarks.google_message4.Message12825.field12867:type_name -> benchmarks.google_message4.Message12821
+	45,  // 59: benchmarks.google_message4.Message12825.field12868:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	56,  // 60: benchmarks.google_message4.Message10320.field10347:type_name -> benchmarks.google_message4.Enum10335
+	57,  // 61: benchmarks.google_message4.Message10320.field10348:type_name -> benchmarks.google_message4.Message10319
+	58,  // 62: benchmarks.google_message4.Message10320.field10353:type_name -> benchmarks.google_message4.Enum10337
+	59,  // 63: benchmarks.google_message4.Message11920.field11945:type_name -> benchmarks.google_message4.Enum11901
+	44,  // 64: benchmarks.google_message4.Message11920.field11946:type_name -> benchmarks.google_message4.UnusedEnum
+	45,  // 65: benchmarks.google_message4.Message6643.field6683:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 66: benchmarks.google_message4.Message6643.field6684:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	60,  // 67: benchmarks.google_message4.Message6643.field6694:type_name -> benchmarks.google_message4.Message6578
+	44,  // 68: benchmarks.google_message4.Message6643.field6695:type_name -> benchmarks.google_message4.UnusedEnum
+	45,  // 69: benchmarks.google_message4.Message6643.field6697:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 70: benchmarks.google_message4.Message6643.field6698:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 71: benchmarks.google_message4.Message6643.field6699:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	61,  // 72: benchmarks.google_message4.Message6133.field6173:type_name -> benchmarks.google_message4.Message4016
+	23,  // 73: benchmarks.google_message4.Message6133.field6180:type_name -> benchmarks.google_message4.Message6109
+	62,  // 74: benchmarks.google_message4.Message6133.field6181:type_name -> benchmarks.google_message4.Message5908
+	63,  // 75: benchmarks.google_message4.Message6133.field6182:type_name -> benchmarks.google_message4.Message6107
+	64,  // 76: benchmarks.google_message4.Message6133.field6183:type_name -> benchmarks.google_message4.Message6126
+	65,  // 77: benchmarks.google_message4.Message6133.field6184:type_name -> benchmarks.google_message4.Message6129
+	61,  // 78: benchmarks.google_message4.Message6133.field6187:type_name -> benchmarks.google_message4.Message4016
+	66,  // 79: benchmarks.google_message4.Message6133.field6192:type_name -> benchmarks.google_message4.Message5881
+	67,  // 80: benchmarks.google_message4.Message6109.field6141:type_name -> benchmarks.google_message4.Enum6111
+	68,  // 81: benchmarks.google_message4.Message6109.field6144:type_name -> benchmarks.google_message4.Message6110
+	22,  // 82: benchmarks.google_message4.Message6109.field6147:type_name -> benchmarks.google_message4.Message6133
+	69,  // 83: benchmarks.google_message4.Message3046.field3222:type_name -> benchmarks.google_message4.Enum2593
+	43,  // 84: benchmarks.google_message4.Message3886.message3887:type_name -> benchmarks.google_message4.Message3886.Message3887
+	70,  // 85: benchmarks.google_message4.Message7864.field7868:type_name -> benchmarks.google_message4.Message7865
+	70,  // 86: benchmarks.google_message4.Message7864.field7869:type_name -> benchmarks.google_message4.Message7865
+	70,  // 87: benchmarks.google_message4.Message7864.field7870:type_name -> benchmarks.google_message4.Message7865
+	45,  // 88: benchmarks.google_message4.Message7864.field7871:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 89: benchmarks.google_message4.Message7843.field7846:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	44,  // 90: benchmarks.google_message4.Message7843.field7849:type_name -> benchmarks.google_message4.UnusedEnum
+	45,  // 91: benchmarks.google_message4.Message7843.field7850:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 92: benchmarks.google_message4.Message7843.field7851:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 93: benchmarks.google_message4.Message7843.field7852:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	71,  // 94: benchmarks.google_message4.Message7843.field7853:type_name -> benchmarks.google_message4.Message7511
+	45,  // 95: benchmarks.google_message4.Message7843.field7854:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 96: benchmarks.google_message4.Message7843.field7855:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 97: benchmarks.google_message4.Message7843.field7856:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 98: benchmarks.google_message4.Message7843.field7857:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	44,  // 99: benchmarks.google_message4.Message7843.field7858:type_name -> benchmarks.google_message4.UnusedEnum
+	72,  // 100: benchmarks.google_message4.Message3919.field4009:type_name -> benchmarks.google_message4.Message3920
+	73,  // 101: benchmarks.google_message4.Message7929.field7950:type_name -> benchmarks.google_message4.Message7919
+	45,  // 102: benchmarks.google_message4.Message7929.field7951:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	74,  // 103: benchmarks.google_message4.Message7929.field7952:type_name -> benchmarks.google_message4.Message7920
+	75,  // 104: benchmarks.google_message4.Message7929.field7953:type_name -> benchmarks.google_message4.Message7921
+	76,  // 105: benchmarks.google_message4.Message7929.field7954:type_name -> benchmarks.google_message4.Message7928
+	45,  // 106: benchmarks.google_message4.Message7929.field7959:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	77,  // 107: benchmarks.google_message4.Message3061.Message3063.field3339:type_name -> benchmarks.google_message4.Enum2851
+	78,  // 108: benchmarks.google_message4.Message3061.Message3064.field3342:type_name -> benchmarks.google_message4.Enum2602
+	25,  // 109: benchmarks.google_message4.Message3061.Message3064.field3347:type_name -> benchmarks.google_message4.Message3060
+	45,  // 110: benchmarks.google_message4.Message3061.Message3064.field3348:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	28,  // 111: benchmarks.google_message4.Message3061.Message3064.field3349:type_name -> benchmarks.google_message4.Message3050
+	48,  // 112: benchmarks.google_message4.Message3061.Message3064.field3355:type_name -> benchmarks.google_message4.Enum2806
+	47,  // 113: benchmarks.google_message4.Message3061.Message3064.field3360:type_name -> benchmarks.google_message4.Enum2834
+	45,  // 114: benchmarks.google_message4.Message3061.Message3066.field3372:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	45,  // 115: benchmarks.google_message4.Message3061.Message3066.field3373:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	79,  // 116: benchmarks.google_message4.Message3886.Message3887.field3934:type_name -> benchmarks.google_message4.Message3850
+	117, // [117:117] is the sub-list for method output_type
+	117, // [117:117] is the sub-list for method input_type
+	117, // [117:117] is the sub-list for extension type_name
+	117, // [117:117] is the sub-list for extension extendee
+	0,   // [0:117] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message4_benchmark_message4_1_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_2.pb.go b/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_2.pb.go
index d557ca2..7006ee9 100644
--- a/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_2.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_2.pb.go
@@ -3252,72 +3252,72 @@
 	(Enum5904)(0),              // 60: benchmarks.google_message4.Enum5904
 }
 var file_datasets_google_message4_benchmark_message4_2_proto_depIdxs = []int32{
-	22, // benchmarks.google_message4.Message12818.field12833:type_name -> benchmarks.google_message4.Message12817
-	35, // benchmarks.google_message4.Message10319.field10340:type_name -> benchmarks.google_message4.Enum10325
-	36, // benchmarks.google_message4.Message6578.field6632:type_name -> benchmarks.google_message4.Enum6579
-	37, // benchmarks.google_message4.Message6578.field6633:type_name -> benchmarks.google_message4.Enum6588
-	24, // benchmarks.google_message4.Message6126.field6153:type_name -> benchmarks.google_message4.Message6127
-	26, // benchmarks.google_message4.Message6126.field6156:type_name -> benchmarks.google_message4.Message6024
-	25, // benchmarks.google_message4.Message6126.field6162:type_name -> benchmarks.google_message4.Message6052
-	33, // benchmarks.google_message4.Message6126.field6163:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	38, // benchmarks.google_message4.Message6126.field6164:type_name -> benchmarks.google_message4.Enum6065
-	24, // benchmarks.google_message4.Message6126.field6165:type_name -> benchmarks.google_message4.Message6127
-	23, // benchmarks.google_message4.Message6126.field6169:type_name -> benchmarks.google_message4.Message6054
-	27, // benchmarks.google_message4.Message5881.field5899:type_name -> benchmarks.google_message4.Message5861
-	33, // benchmarks.google_message4.Message5881.field5900:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	29, // benchmarks.google_message4.Message5881.field5901:type_name -> benchmarks.google_message4.Message5867
-	28, // benchmarks.google_message4.Message5881.field5902:type_name -> benchmarks.google_message4.Message5880
-	30, // benchmarks.google_message4.Message6107.field6134:type_name -> benchmarks.google_message4.Message4016
-	31, // benchmarks.google_message4.Message6107.field6139:type_name -> benchmarks.google_message4.Message6108
-	39, // benchmarks.google_message4.Message6129.field6171:type_name -> benchmarks.google_message4.Enum6130
-	40, // benchmarks.google_message4.Message5908.field5974:type_name -> benchmarks.google_message4.Enum5909
-	41, // benchmarks.google_message4.Message5908.field5975:type_name -> benchmarks.google_message4.Enum5912
-	42, // benchmarks.google_message4.Message5908.field5980:type_name -> benchmarks.google_message4.Enum5915
-	34, // benchmarks.google_message4.Message5908.field5981:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5982:type_name -> benchmarks.google_message4.Message5903
-	43, // benchmarks.google_message4.Message5908.field5983:type_name -> benchmarks.google_message4.Enum5920
-	44, // benchmarks.google_message4.Message5908.field5984:type_name -> benchmarks.google_message4.Enum5923
-	34, // benchmarks.google_message4.Message5908.field5985:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5986:type_name -> benchmarks.google_message4.Message5903
-	45, // benchmarks.google_message4.Message5908.field5987:type_name -> benchmarks.google_message4.Enum5928
-	34, // benchmarks.google_message4.Message5908.field5991:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5992:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5993:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5994:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5995:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5996:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5997:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5908.field5998:type_name -> benchmarks.google_message4.Message5903
-	46, // benchmarks.google_message4.Message5908.field5999:type_name -> benchmarks.google_message4.Enum5931
-	47, // benchmarks.google_message4.Message5908.field6000:type_name -> benchmarks.google_message4.Enum5935
-	48, // benchmarks.google_message4.Message5908.field6001:type_name -> benchmarks.google_message4.Enum5939
-	48, // benchmarks.google_message4.Message5908.field6002:type_name -> benchmarks.google_message4.Enum5939
-	49, // benchmarks.google_message4.Message5908.field6008:type_name -> benchmarks.google_message4.Enum5946
-	49, // benchmarks.google_message4.Message5908.field6009:type_name -> benchmarks.google_message4.Enum5946
-	49, // benchmarks.google_message4.Message5908.field6010:type_name -> benchmarks.google_message4.Enum5946
-	49, // benchmarks.google_message4.Message5908.field6011:type_name -> benchmarks.google_message4.Enum5946
-	50, // benchmarks.google_message4.Message5908.field6018:type_name -> benchmarks.google_message4.Enum5957
-	32, // benchmarks.google_message4.Message5908.field6019:type_name -> benchmarks.google_message4.Message5907
-	51, // benchmarks.google_message4.Message5908.field6020:type_name -> benchmarks.google_message4.Enum5962
-	52, // benchmarks.google_message4.Message3850.field3924:type_name -> benchmarks.google_message4.Enum3851
-	53, // benchmarks.google_message4.Message7511.field7524:type_name -> benchmarks.google_message4.Enum7512
-	54, // benchmarks.google_message4.Message7921.field7939:type_name -> benchmarks.google_message4.Enum7922
-	55, // benchmarks.google_message4.Message6024.field6048:type_name -> benchmarks.google_message4.Enum6025
-	33, // benchmarks.google_message4.Message6024.field6050:type_name -> benchmarks.google_message4.UnusedEmptyMessage
-	56, // benchmarks.google_message4.Message5861.field5882:type_name -> benchmarks.google_message4.Enum5862
-	57, // benchmarks.google_message4.Message5867.field5890:type_name -> benchmarks.google_message4.Enum5868
-	58, // benchmarks.google_message4.Message5867.field5892:type_name -> benchmarks.google_message4.Enum5873
-	59, // benchmarks.google_message4.Message5867.field5894:type_name -> benchmarks.google_message4.UnusedEnum
-	34, // benchmarks.google_message4.Message5907.field5967:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5907.field5968:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5907.field5969:type_name -> benchmarks.google_message4.Message5903
-	34, // benchmarks.google_message4.Message5907.field5970:type_name -> benchmarks.google_message4.Message5903
-	60, // benchmarks.google_message4.Message5903.field5966:type_name -> benchmarks.google_message4.Enum5904
-	61, // starting offset of method output_type sub-list
-	61, // starting offset of method input_type sub-list
-	61, // starting offset of extension type_name sub-list
-	61, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	22, // 0: benchmarks.google_message4.Message12818.field12833:type_name -> benchmarks.google_message4.Message12817
+	35, // 1: benchmarks.google_message4.Message10319.field10340:type_name -> benchmarks.google_message4.Enum10325
+	36, // 2: benchmarks.google_message4.Message6578.field6632:type_name -> benchmarks.google_message4.Enum6579
+	37, // 3: benchmarks.google_message4.Message6578.field6633:type_name -> benchmarks.google_message4.Enum6588
+	24, // 4: benchmarks.google_message4.Message6126.field6153:type_name -> benchmarks.google_message4.Message6127
+	26, // 5: benchmarks.google_message4.Message6126.field6156:type_name -> benchmarks.google_message4.Message6024
+	25, // 6: benchmarks.google_message4.Message6126.field6162:type_name -> benchmarks.google_message4.Message6052
+	33, // 7: benchmarks.google_message4.Message6126.field6163:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	38, // 8: benchmarks.google_message4.Message6126.field6164:type_name -> benchmarks.google_message4.Enum6065
+	24, // 9: benchmarks.google_message4.Message6126.field6165:type_name -> benchmarks.google_message4.Message6127
+	23, // 10: benchmarks.google_message4.Message6126.field6169:type_name -> benchmarks.google_message4.Message6054
+	27, // 11: benchmarks.google_message4.Message5881.field5899:type_name -> benchmarks.google_message4.Message5861
+	33, // 12: benchmarks.google_message4.Message5881.field5900:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	29, // 13: benchmarks.google_message4.Message5881.field5901:type_name -> benchmarks.google_message4.Message5867
+	28, // 14: benchmarks.google_message4.Message5881.field5902:type_name -> benchmarks.google_message4.Message5880
+	30, // 15: benchmarks.google_message4.Message6107.field6134:type_name -> benchmarks.google_message4.Message4016
+	31, // 16: benchmarks.google_message4.Message6107.field6139:type_name -> benchmarks.google_message4.Message6108
+	39, // 17: benchmarks.google_message4.Message6129.field6171:type_name -> benchmarks.google_message4.Enum6130
+	40, // 18: benchmarks.google_message4.Message5908.field5974:type_name -> benchmarks.google_message4.Enum5909
+	41, // 19: benchmarks.google_message4.Message5908.field5975:type_name -> benchmarks.google_message4.Enum5912
+	42, // 20: benchmarks.google_message4.Message5908.field5980:type_name -> benchmarks.google_message4.Enum5915
+	34, // 21: benchmarks.google_message4.Message5908.field5981:type_name -> benchmarks.google_message4.Message5903
+	34, // 22: benchmarks.google_message4.Message5908.field5982:type_name -> benchmarks.google_message4.Message5903
+	43, // 23: benchmarks.google_message4.Message5908.field5983:type_name -> benchmarks.google_message4.Enum5920
+	44, // 24: benchmarks.google_message4.Message5908.field5984:type_name -> benchmarks.google_message4.Enum5923
+	34, // 25: benchmarks.google_message4.Message5908.field5985:type_name -> benchmarks.google_message4.Message5903
+	34, // 26: benchmarks.google_message4.Message5908.field5986:type_name -> benchmarks.google_message4.Message5903
+	45, // 27: benchmarks.google_message4.Message5908.field5987:type_name -> benchmarks.google_message4.Enum5928
+	34, // 28: benchmarks.google_message4.Message5908.field5991:type_name -> benchmarks.google_message4.Message5903
+	34, // 29: benchmarks.google_message4.Message5908.field5992:type_name -> benchmarks.google_message4.Message5903
+	34, // 30: benchmarks.google_message4.Message5908.field5993:type_name -> benchmarks.google_message4.Message5903
+	34, // 31: benchmarks.google_message4.Message5908.field5994:type_name -> benchmarks.google_message4.Message5903
+	34, // 32: benchmarks.google_message4.Message5908.field5995:type_name -> benchmarks.google_message4.Message5903
+	34, // 33: benchmarks.google_message4.Message5908.field5996:type_name -> benchmarks.google_message4.Message5903
+	34, // 34: benchmarks.google_message4.Message5908.field5997:type_name -> benchmarks.google_message4.Message5903
+	34, // 35: benchmarks.google_message4.Message5908.field5998:type_name -> benchmarks.google_message4.Message5903
+	46, // 36: benchmarks.google_message4.Message5908.field5999:type_name -> benchmarks.google_message4.Enum5931
+	47, // 37: benchmarks.google_message4.Message5908.field6000:type_name -> benchmarks.google_message4.Enum5935
+	48, // 38: benchmarks.google_message4.Message5908.field6001:type_name -> benchmarks.google_message4.Enum5939
+	48, // 39: benchmarks.google_message4.Message5908.field6002:type_name -> benchmarks.google_message4.Enum5939
+	49, // 40: benchmarks.google_message4.Message5908.field6008:type_name -> benchmarks.google_message4.Enum5946
+	49, // 41: benchmarks.google_message4.Message5908.field6009:type_name -> benchmarks.google_message4.Enum5946
+	49, // 42: benchmarks.google_message4.Message5908.field6010:type_name -> benchmarks.google_message4.Enum5946
+	49, // 43: benchmarks.google_message4.Message5908.field6011:type_name -> benchmarks.google_message4.Enum5946
+	50, // 44: benchmarks.google_message4.Message5908.field6018:type_name -> benchmarks.google_message4.Enum5957
+	32, // 45: benchmarks.google_message4.Message5908.field6019:type_name -> benchmarks.google_message4.Message5907
+	51, // 46: benchmarks.google_message4.Message5908.field6020:type_name -> benchmarks.google_message4.Enum5962
+	52, // 47: benchmarks.google_message4.Message3850.field3924:type_name -> benchmarks.google_message4.Enum3851
+	53, // 48: benchmarks.google_message4.Message7511.field7524:type_name -> benchmarks.google_message4.Enum7512
+	54, // 49: benchmarks.google_message4.Message7921.field7939:type_name -> benchmarks.google_message4.Enum7922
+	55, // 50: benchmarks.google_message4.Message6024.field6048:type_name -> benchmarks.google_message4.Enum6025
+	33, // 51: benchmarks.google_message4.Message6024.field6050:type_name -> benchmarks.google_message4.UnusedEmptyMessage
+	56, // 52: benchmarks.google_message4.Message5861.field5882:type_name -> benchmarks.google_message4.Enum5862
+	57, // 53: benchmarks.google_message4.Message5867.field5890:type_name -> benchmarks.google_message4.Enum5868
+	58, // 54: benchmarks.google_message4.Message5867.field5892:type_name -> benchmarks.google_message4.Enum5873
+	59, // 55: benchmarks.google_message4.Message5867.field5894:type_name -> benchmarks.google_message4.UnusedEnum
+	34, // 56: benchmarks.google_message4.Message5907.field5967:type_name -> benchmarks.google_message4.Message5903
+	34, // 57: benchmarks.google_message4.Message5907.field5968:type_name -> benchmarks.google_message4.Message5903
+	34, // 58: benchmarks.google_message4.Message5907.field5969:type_name -> benchmarks.google_message4.Message5903
+	34, // 59: benchmarks.google_message4.Message5907.field5970:type_name -> benchmarks.google_message4.Message5903
+	60, // 60: benchmarks.google_message4.Message5903.field5966:type_name -> benchmarks.google_message4.Enum5904
+	61, // [61:61] is the sub-list for method output_type
+	61, // [61:61] is the sub-list for method input_type
+	61, // [61:61] is the sub-list for extension type_name
+	61, // [61:61] is the sub-list for extension extendee
+	0,  // [0:61] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message4_benchmark_message4_2_proto_init() }
diff --git a/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_3.pb.go b/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_3.pb.go
index 692f206..6cb44d8 100644
--- a/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_3.pb.go
+++ b/internal/testprotos/benchmarks/datasets/google_message4/benchmark_message4_3.pb.go
@@ -4847,11 +4847,11 @@
 	(Enum12871)(0),  // 41: benchmarks.google_message4.Enum12871
 }
 var file_datasets_google_message4_benchmark_message4_3_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_datasets_google_message4_benchmark_message4_3_proto_init() }
diff --git a/internal/testprotos/conformance/conformance.pb.go b/internal/testprotos/conformance/conformance.pb.go
index ba2f837..020b87c 100644
--- a/internal/testprotos/conformance/conformance.pb.go
+++ b/internal/testprotos/conformance/conformance.pb.go
@@ -698,14 +698,14 @@
 	(*JspbEncodingConfig)(nil),  // 5: conformance.JspbEncodingConfig
 }
 var file_conformance_conformance_proto_depIdxs = []int32{
-	0, // conformance.ConformanceRequest.requested_output_format:type_name -> conformance.WireFormat
-	1, // conformance.ConformanceRequest.test_category:type_name -> conformance.TestCategory
-	5, // conformance.ConformanceRequest.jspb_encoding_options:type_name -> conformance.JspbEncodingConfig
-	3, // starting offset of method output_type sub-list
-	3, // starting offset of method input_type sub-list
-	3, // starting offset of extension type_name sub-list
-	3, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // 0: conformance.ConformanceRequest.requested_output_format:type_name -> conformance.WireFormat
+	1, // 1: conformance.ConformanceRequest.test_category:type_name -> conformance.TestCategory
+	5, // 2: conformance.ConformanceRequest.jspb_encoding_options:type_name -> conformance.JspbEncodingConfig
+	3, // [3:3] is the sub-list for method output_type
+	3, // [3:3] is the sub-list for method input_type
+	3, // [3:3] is the sub-list for extension type_name
+	3, // [3:3] is the sub-list for extension extendee
+	0, // [0:3] is the sub-list for field type_name
 }
 
 func init() { file_conformance_conformance_proto_init() }
diff --git a/internal/testprotos/conformance/test_messages_proto2.pb.go b/internal/testprotos/conformance/test_messages_proto2.pb.go
index cfb75d2..d93595f 100644
--- a/internal/testprotos/conformance/test_messages_proto2.pb.go
+++ b/internal/testprotos/conformance/test_messages_proto2.pb.go
@@ -1913,52 +1913,52 @@
 	(*TestAllTypesProto2_MessageSetCorrectExtension2)(nil), // 27: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2
 }
 var file_google_protobuf_test_messages_proto2_proto_depIdxs = []int32{
-	4,  // protobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage
-	3,  // protobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_message:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2
-	1,  // protobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
-	0,  // protobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_enum:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2
-	2,  // protobuf_test_messages.proto2.TestAllTypesProto2.recursive_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2
-	4,  // protobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage
-	3,  // protobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_message:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2
-	1,  // protobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
-	0,  // protobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_enum:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2
-	5,  // protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_int32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry
-	6,  // protobuf_test_messages.proto2.TestAllTypesProto2.map_int64_int64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry
-	7,  // protobuf_test_messages.proto2.TestAllTypesProto2.map_uint32_uint32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry
-	8,  // protobuf_test_messages.proto2.TestAllTypesProto2.map_uint64_uint64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry
-	9,  // protobuf_test_messages.proto2.TestAllTypesProto2.map_sint32_sint32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry
-	10, // protobuf_test_messages.proto2.TestAllTypesProto2.map_sint64_sint64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry
-	11, // protobuf_test_messages.proto2.TestAllTypesProto2.map_fixed32_fixed32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry
-	12, // protobuf_test_messages.proto2.TestAllTypesProto2.map_fixed64_fixed64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry
-	13, // protobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed32_sfixed32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry
-	14, // protobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed64_sfixed64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry
-	15, // protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_float:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry
-	16, // protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_double:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry
-	17, // protobuf_test_messages.proto2.TestAllTypesProto2.map_bool_bool:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry
-	18, // protobuf_test_messages.proto2.TestAllTypesProto2.map_string_string:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry
-	19, // protobuf_test_messages.proto2.TestAllTypesProto2.map_string_bytes:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry
-	20, // protobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry
-	21, // protobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry
-	22, // protobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry
-	23, // protobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry
-	4,  // protobuf_test_messages.proto2.TestAllTypesProto2.oneof_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage
-	1,  // protobuf_test_messages.proto2.TestAllTypesProto2.oneof_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
-	24, // protobuf_test_messages.proto2.TestAllTypesProto2.data:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.Data
-	2,  // protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2
-	4,  // protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage
-	3,  // protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2
-	1,  // protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
-	0,  // protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2
-	2,  // protobuf_test_messages.proto2.extension_int32:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2
-	25, // protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
-	25, // protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
-	26, // protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1
-	27, // protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2
-	41, // starting offset of method output_type sub-list
-	41, // starting offset of method input_type sub-list
-	39, // starting offset of extension type_name sub-list
-	36, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	4,  // 0: protobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage
+	3,  // 1: protobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_message:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2
+	1,  // 2: protobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
+	0,  // 3: protobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_enum:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2
+	2,  // 4: protobuf_test_messages.proto2.TestAllTypesProto2.recursive_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2
+	4,  // 5: protobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage
+	3,  // 6: protobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_message:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2
+	1,  // 7: protobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
+	0,  // 8: protobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_enum:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2
+	5,  // 9: protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_int32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry
+	6,  // 10: protobuf_test_messages.proto2.TestAllTypesProto2.map_int64_int64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry
+	7,  // 11: protobuf_test_messages.proto2.TestAllTypesProto2.map_uint32_uint32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry
+	8,  // 12: protobuf_test_messages.proto2.TestAllTypesProto2.map_uint64_uint64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry
+	9,  // 13: protobuf_test_messages.proto2.TestAllTypesProto2.map_sint32_sint32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry
+	10, // 14: protobuf_test_messages.proto2.TestAllTypesProto2.map_sint64_sint64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry
+	11, // 15: protobuf_test_messages.proto2.TestAllTypesProto2.map_fixed32_fixed32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry
+	12, // 16: protobuf_test_messages.proto2.TestAllTypesProto2.map_fixed64_fixed64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry
+	13, // 17: protobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed32_sfixed32:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry
+	14, // 18: protobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed64_sfixed64:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry
+	15, // 19: protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_float:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry
+	16, // 20: protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_double:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry
+	17, // 21: protobuf_test_messages.proto2.TestAllTypesProto2.map_bool_bool:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry
+	18, // 22: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_string:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry
+	19, // 23: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_bytes:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry
+	20, // 24: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry
+	21, // 25: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry
+	22, // 26: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry
+	23, // 27: protobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry
+	4,  // 28: protobuf_test_messages.proto2.TestAllTypesProto2.oneof_nested_message:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage
+	1,  // 29: protobuf_test_messages.proto2.TestAllTypesProto2.oneof_enum:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
+	24, // 30: protobuf_test_messages.proto2.TestAllTypesProto2.data:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.Data
+	2,  // 31: protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2
+	4,  // 32: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage
+	3,  // 33: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto2.ForeignMessageProto2
+	1,  // 34: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
+	0,  // 35: protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto2.ForeignEnumProto2
+	2,  // 36: protobuf_test_messages.proto2.extension_int32:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2
+	25, // 37: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
+	25, // 38: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:extendee -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect
+	26, // 39: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1
+	27, // 40: protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension:type_name -> protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2
+	41, // [41:41] is the sub-list for method output_type
+	41, // [41:41] is the sub-list for method input_type
+	39, // [39:41] is the sub-list for extension type_name
+	36, // [36:39] is the sub-list for extension extendee
+	0,  // [0:36] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_test_messages_proto2_proto_init() }
diff --git a/internal/testprotos/conformance/test_messages_proto3.pb.go b/internal/testprotos/conformance/test_messages_proto3.pb.go
index 89c33c0..5c5bfc5 100644
--- a/internal/testprotos/conformance/test_messages_proto3.pb.go
+++ b/internal/testprotos/conformance/test_messages_proto3.pb.go
@@ -2116,78 +2116,78 @@
 	(*structpb.ListValue)(nil),               // 40: google.protobuf.ListValue
 }
 var file_google_protobuf_test_messages_proto3_proto_depIdxs = []int32{
-	5,  // protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
-	4,  // protobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_message:type_name -> protobuf_test_messages.proto3.ForeignMessage
-	1,  // protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
-	0,  // protobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_enum:type_name -> protobuf_test_messages.proto3.ForeignEnum
-	2,  // protobuf_test_messages.proto3.TestAllTypesProto3.optional_aliased_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.AliasedEnum
-	3,  // protobuf_test_messages.proto3.TestAllTypesProto3.recursive_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3
-	5,  // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
-	4,  // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_message:type_name -> protobuf_test_messages.proto3.ForeignMessage
-	1,  // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
-	0,  // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_enum:type_name -> protobuf_test_messages.proto3.ForeignEnum
-	6,  // protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_int32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry
-	7,  // protobuf_test_messages.proto3.TestAllTypesProto3.map_int64_int64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry
-	8,  // protobuf_test_messages.proto3.TestAllTypesProto3.map_uint32_uint32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry
-	9,  // protobuf_test_messages.proto3.TestAllTypesProto3.map_uint64_uint64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry
-	10, // protobuf_test_messages.proto3.TestAllTypesProto3.map_sint32_sint32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry
-	11, // protobuf_test_messages.proto3.TestAllTypesProto3.map_sint64_sint64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry
-	12, // protobuf_test_messages.proto3.TestAllTypesProto3.map_fixed32_fixed32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry
-	13, // protobuf_test_messages.proto3.TestAllTypesProto3.map_fixed64_fixed64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry
-	14, // protobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed32_sfixed32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry
-	15, // protobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed64_sfixed64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry
-	16, // protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_float:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry
-	17, // protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_double:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry
-	18, // protobuf_test_messages.proto3.TestAllTypesProto3.map_bool_bool:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry
-	19, // protobuf_test_messages.proto3.TestAllTypesProto3.map_string_string:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry
-	20, // protobuf_test_messages.proto3.TestAllTypesProto3.map_string_bytes:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry
-	21, // protobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry
-	22, // protobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry
-	23, // protobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry
-	24, // protobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry
-	5,  // protobuf_test_messages.proto3.TestAllTypesProto3.oneof_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
-	1,  // protobuf_test_messages.proto3.TestAllTypesProto3.oneof_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
-	25, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_bool_wrapper:type_name -> google.protobuf.BoolValue
-	26, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_int32_wrapper:type_name -> google.protobuf.Int32Value
-	27, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_int64_wrapper:type_name -> google.protobuf.Int64Value
-	28, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32_wrapper:type_name -> google.protobuf.UInt32Value
-	29, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64_wrapper:type_name -> google.protobuf.UInt64Value
-	30, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_float_wrapper:type_name -> google.protobuf.FloatValue
-	31, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_double_wrapper:type_name -> google.protobuf.DoubleValue
-	32, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_string_wrapper:type_name -> google.protobuf.StringValue
-	33, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_bytes_wrapper:type_name -> google.protobuf.BytesValue
-	25, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bool_wrapper:type_name -> google.protobuf.BoolValue
-	26, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32_wrapper:type_name -> google.protobuf.Int32Value
-	27, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64_wrapper:type_name -> google.protobuf.Int64Value
-	28, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32_wrapper:type_name -> google.protobuf.UInt32Value
-	29, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64_wrapper:type_name -> google.protobuf.UInt64Value
-	30, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_float_wrapper:type_name -> google.protobuf.FloatValue
-	31, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_double_wrapper:type_name -> google.protobuf.DoubleValue
-	32, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_wrapper:type_name -> google.protobuf.StringValue
-	33, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytes_wrapper:type_name -> google.protobuf.BytesValue
-	34, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_duration:type_name -> google.protobuf.Duration
-	35, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_timestamp:type_name -> google.protobuf.Timestamp
-	36, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_field_mask:type_name -> google.protobuf.FieldMask
-	37, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_struct:type_name -> google.protobuf.Struct
-	38, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_any:type_name -> google.protobuf.Any
-	39, // protobuf_test_messages.proto3.TestAllTypesProto3.optional_value:type_name -> google.protobuf.Value
-	34, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_duration:type_name -> google.protobuf.Duration
-	35, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_timestamp:type_name -> google.protobuf.Timestamp
-	36, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_fieldmask:type_name -> google.protobuf.FieldMask
-	37, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_struct:type_name -> google.protobuf.Struct
-	38, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_any:type_name -> google.protobuf.Any
-	39, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_value:type_name -> google.protobuf.Value
-	40, // protobuf_test_messages.proto3.TestAllTypesProto3.repeated_list_value:type_name -> google.protobuf.ListValue
-	3,  // protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3
-	5,  // protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
-	4,  // protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto3.ForeignMessage
-	1,  // protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
-	0,  // protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto3.ForeignEnum
-	67, // starting offset of method output_type sub-list
-	67, // starting offset of method input_type sub-list
-	67, // starting offset of extension type_name sub-list
-	67, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	5,  // 0: protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
+	4,  // 1: protobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_message:type_name -> protobuf_test_messages.proto3.ForeignMessage
+	1,  // 2: protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
+	0,  // 3: protobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_enum:type_name -> protobuf_test_messages.proto3.ForeignEnum
+	2,  // 4: protobuf_test_messages.proto3.TestAllTypesProto3.optional_aliased_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.AliasedEnum
+	3,  // 5: protobuf_test_messages.proto3.TestAllTypesProto3.recursive_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3
+	5,  // 6: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
+	4,  // 7: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_message:type_name -> protobuf_test_messages.proto3.ForeignMessage
+	1,  // 8: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
+	0,  // 9: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_enum:type_name -> protobuf_test_messages.proto3.ForeignEnum
+	6,  // 10: protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_int32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry
+	7,  // 11: protobuf_test_messages.proto3.TestAllTypesProto3.map_int64_int64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry
+	8,  // 12: protobuf_test_messages.proto3.TestAllTypesProto3.map_uint32_uint32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry
+	9,  // 13: protobuf_test_messages.proto3.TestAllTypesProto3.map_uint64_uint64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry
+	10, // 14: protobuf_test_messages.proto3.TestAllTypesProto3.map_sint32_sint32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry
+	11, // 15: protobuf_test_messages.proto3.TestAllTypesProto3.map_sint64_sint64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry
+	12, // 16: protobuf_test_messages.proto3.TestAllTypesProto3.map_fixed32_fixed32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry
+	13, // 17: protobuf_test_messages.proto3.TestAllTypesProto3.map_fixed64_fixed64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry
+	14, // 18: protobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed32_sfixed32:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry
+	15, // 19: protobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed64_sfixed64:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry
+	16, // 20: protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_float:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry
+	17, // 21: protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_double:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry
+	18, // 22: protobuf_test_messages.proto3.TestAllTypesProto3.map_bool_bool:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry
+	19, // 23: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_string:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry
+	20, // 24: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_bytes:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry
+	21, // 25: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry
+	22, // 26: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry
+	23, // 27: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry
+	24, // 28: protobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry
+	5,  // 29: protobuf_test_messages.proto3.TestAllTypesProto3.oneof_nested_message:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
+	1,  // 30: protobuf_test_messages.proto3.TestAllTypesProto3.oneof_enum:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
+	25, // 31: protobuf_test_messages.proto3.TestAllTypesProto3.optional_bool_wrapper:type_name -> google.protobuf.BoolValue
+	26, // 32: protobuf_test_messages.proto3.TestAllTypesProto3.optional_int32_wrapper:type_name -> google.protobuf.Int32Value
+	27, // 33: protobuf_test_messages.proto3.TestAllTypesProto3.optional_int64_wrapper:type_name -> google.protobuf.Int64Value
+	28, // 34: protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32_wrapper:type_name -> google.protobuf.UInt32Value
+	29, // 35: protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64_wrapper:type_name -> google.protobuf.UInt64Value
+	30, // 36: protobuf_test_messages.proto3.TestAllTypesProto3.optional_float_wrapper:type_name -> google.protobuf.FloatValue
+	31, // 37: protobuf_test_messages.proto3.TestAllTypesProto3.optional_double_wrapper:type_name -> google.protobuf.DoubleValue
+	32, // 38: protobuf_test_messages.proto3.TestAllTypesProto3.optional_string_wrapper:type_name -> google.protobuf.StringValue
+	33, // 39: protobuf_test_messages.proto3.TestAllTypesProto3.optional_bytes_wrapper:type_name -> google.protobuf.BytesValue
+	25, // 40: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bool_wrapper:type_name -> google.protobuf.BoolValue
+	26, // 41: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32_wrapper:type_name -> google.protobuf.Int32Value
+	27, // 42: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64_wrapper:type_name -> google.protobuf.Int64Value
+	28, // 43: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32_wrapper:type_name -> google.protobuf.UInt32Value
+	29, // 44: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64_wrapper:type_name -> google.protobuf.UInt64Value
+	30, // 45: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_float_wrapper:type_name -> google.protobuf.FloatValue
+	31, // 46: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_double_wrapper:type_name -> google.protobuf.DoubleValue
+	32, // 47: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_wrapper:type_name -> google.protobuf.StringValue
+	33, // 48: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytes_wrapper:type_name -> google.protobuf.BytesValue
+	34, // 49: protobuf_test_messages.proto3.TestAllTypesProto3.optional_duration:type_name -> google.protobuf.Duration
+	35, // 50: protobuf_test_messages.proto3.TestAllTypesProto3.optional_timestamp:type_name -> google.protobuf.Timestamp
+	36, // 51: protobuf_test_messages.proto3.TestAllTypesProto3.optional_field_mask:type_name -> google.protobuf.FieldMask
+	37, // 52: protobuf_test_messages.proto3.TestAllTypesProto3.optional_struct:type_name -> google.protobuf.Struct
+	38, // 53: protobuf_test_messages.proto3.TestAllTypesProto3.optional_any:type_name -> google.protobuf.Any
+	39, // 54: protobuf_test_messages.proto3.TestAllTypesProto3.optional_value:type_name -> google.protobuf.Value
+	34, // 55: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_duration:type_name -> google.protobuf.Duration
+	35, // 56: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_timestamp:type_name -> google.protobuf.Timestamp
+	36, // 57: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_fieldmask:type_name -> google.protobuf.FieldMask
+	37, // 58: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_struct:type_name -> google.protobuf.Struct
+	38, // 59: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_any:type_name -> google.protobuf.Any
+	39, // 60: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_value:type_name -> google.protobuf.Value
+	40, // 61: protobuf_test_messages.proto3.TestAllTypesProto3.repeated_list_value:type_name -> google.protobuf.ListValue
+	3,  // 62: protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.corecursive:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3
+	5,  // 63: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage
+	4,  // 64: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.value:type_name -> protobuf_test_messages.proto3.ForeignMessage
+	1,  // 65: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.value:type_name -> protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
+	0,  // 66: protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.value:type_name -> protobuf_test_messages.proto3.ForeignEnum
+	67, // [67:67] is the sub-list for method output_type
+	67, // [67:67] is the sub-list for method input_type
+	67, // [67:67] is the sub-list for extension type_name
+	67, // [67:67] is the sub-list for extension extendee
+	0,  // [0:67] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_test_messages_proto3_proto_init() }
diff --git a/internal/testprotos/irregular/test.pb.go b/internal/testprotos/irregular/test.pb.go
index 31f1e11..df8ebf3 100644
--- a/internal/testprotos/irregular/test.pb.go
+++ b/internal/testprotos/irregular/test.pb.go
@@ -178,17 +178,17 @@
 	(*IrregularMessage)(nil), // 2: goproto.proto.irregular.IrregularMessage
 }
 var file_irregular_test_proto_depIdxs = []int32{
-	2, // goproto.proto.irregular.Message.optional_message:type_name -> goproto.proto.irregular.IrregularMessage
-	2, // goproto.proto.irregular.Message.repeated_message:type_name -> goproto.proto.irregular.IrregularMessage
-	2, // goproto.proto.irregular.Message.required_message:type_name -> goproto.proto.irregular.IrregularMessage
-	1, // goproto.proto.irregular.Message.map_message:type_name -> goproto.proto.irregular.Message.MapMessageEntry
-	2, // goproto.proto.irregular.Message.oneof_message:type_name -> goproto.proto.irregular.IrregularMessage
-	2, // goproto.proto.irregular.Message.MapMessageEntry.value:type_name -> goproto.proto.irregular.IrregularMessage
-	6, // starting offset of method output_type sub-list
-	6, // starting offset of method input_type sub-list
-	6, // starting offset of extension type_name sub-list
-	6, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	2, // 0: goproto.proto.irregular.Message.optional_message:type_name -> goproto.proto.irregular.IrregularMessage
+	2, // 1: goproto.proto.irregular.Message.repeated_message:type_name -> goproto.proto.irregular.IrregularMessage
+	2, // 2: goproto.proto.irregular.Message.required_message:type_name -> goproto.proto.irregular.IrregularMessage
+	1, // 3: goproto.proto.irregular.Message.map_message:type_name -> goproto.proto.irregular.Message.MapMessageEntry
+	2, // 4: goproto.proto.irregular.Message.oneof_message:type_name -> goproto.proto.irregular.IrregularMessage
+	2, // 5: goproto.proto.irregular.Message.MapMessageEntry.value:type_name -> goproto.proto.irregular.IrregularMessage
+	6, // [6:6] is the sub-list for method output_type
+	6, // [6:6] is the sub-list for method input_type
+	6, // [6:6] is the sub-list for extension type_name
+	6, // [6:6] is the sub-list for extension extendee
+	0, // [0:6] is the sub-list for field type_name
 }
 
 func init() { file_irregular_test_proto_init() }
diff --git a/internal/testprotos/legacy/legacy.pb.go b/internal/testprotos/legacy/legacy.pb.go
index db77985..1eee7c0 100644
--- a/internal/testprotos/legacy/legacy.pb.go
+++ b/internal/testprotos/legacy/legacy.pb.go
@@ -281,23 +281,23 @@
 	(*proto3_v1_21.Message)(nil), // 12: google.golang.org.proto3_20181126.Message
 }
 var file_legacy_legacy_proto_depIdxs = []int32{
-	1,  // google.golang.org.Legacy.f1:type_name -> google.golang.org.proto2_20160225.Message
-	2,  // google.golang.org.Legacy.f2:type_name -> google.golang.org.proto3_20160225.Message
-	3,  // google.golang.org.Legacy.f3:type_name -> google.golang.org.proto2_20160519.Message
-	4,  // google.golang.org.Legacy.f4:type_name -> google.golang.org.proto3_20160519.Message
-	5,  // google.golang.org.Legacy.f5:type_name -> google.golang.org.proto2_20180125.Message
-	6,  // google.golang.org.Legacy.f6:type_name -> google.golang.org.proto3_20180125.Message
-	7,  // google.golang.org.Legacy.f7:type_name -> google.golang.org.proto2_20180430.Message
-	8,  // google.golang.org.Legacy.f8:type_name -> google.golang.org.proto3_20180430.Message
-	9,  // google.golang.org.Legacy.f9:type_name -> google.golang.org.proto2_20180814.Message
-	10, // google.golang.org.Legacy.f10:type_name -> google.golang.org.proto3_20180814.Message
-	11, // google.golang.org.Legacy.f11:type_name -> google.golang.org.proto2_20181126.Message
-	12, // google.golang.org.Legacy.f12:type_name -> google.golang.org.proto3_20181126.Message
-	12, // starting offset of method output_type sub-list
-	12, // starting offset of method input_type sub-list
-	12, // starting offset of extension type_name sub-list
-	12, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	1,  // 0: google.golang.org.Legacy.f1:type_name -> google.golang.org.proto2_20160225.Message
+	2,  // 1: google.golang.org.Legacy.f2:type_name -> google.golang.org.proto3_20160225.Message
+	3,  // 2: google.golang.org.Legacy.f3:type_name -> google.golang.org.proto2_20160519.Message
+	4,  // 3: google.golang.org.Legacy.f4:type_name -> google.golang.org.proto3_20160519.Message
+	5,  // 4: google.golang.org.Legacy.f5:type_name -> google.golang.org.proto2_20180125.Message
+	6,  // 5: google.golang.org.Legacy.f6:type_name -> google.golang.org.proto3_20180125.Message
+	7,  // 6: google.golang.org.Legacy.f7:type_name -> google.golang.org.proto2_20180430.Message
+	8,  // 7: google.golang.org.Legacy.f8:type_name -> google.golang.org.proto3_20180430.Message
+	9,  // 8: google.golang.org.Legacy.f9:type_name -> google.golang.org.proto2_20180814.Message
+	10, // 9: google.golang.org.Legacy.f10:type_name -> google.golang.org.proto3_20180814.Message
+	11, // 10: google.golang.org.Legacy.f11:type_name -> google.golang.org.proto2_20181126.Message
+	12, // 11: google.golang.org.Legacy.f12:type_name -> google.golang.org.proto3_20181126.Message
+	12, // [12:12] is the sub-list for method output_type
+	12, // [12:12] is the sub-list for method input_type
+	12, // [12:12] is the sub-list for extension type_name
+	12, // [12:12] is the sub-list for extension extendee
+	0,  // [0:12] is the sub-list for field type_name
 }
 
 func init() { file_legacy_legacy_proto_init() }
diff --git a/internal/testprotos/messageset/messagesetpb/message_set.pb.go b/internal/testprotos/messageset/messagesetpb/message_set.pb.go
index b2199ca..59a1dfd 100644
--- a/internal/testprotos/messageset/messagesetpb/message_set.pb.go
+++ b/internal/testprotos/messageset/messagesetpb/message_set.pb.go
@@ -91,11 +91,11 @@
 	(*MessageSet)(nil), // 0: goproto.proto.messageset.MessageSet
 }
 var file_messageset_messagesetpb_message_set_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_messageset_messagesetpb_message_set_proto_init() }
diff --git a/internal/testprotos/messageset/msetextpb/msetextpb.pb.go b/internal/testprotos/messageset/msetextpb/msetextpb.pb.go
index 21715b0..24e07bd 100644
--- a/internal/testprotos/messageset/msetextpb/msetextpb.pb.go
+++ b/internal/testprotos/messageset/msetextpb/msetextpb.pb.go
@@ -193,15 +193,15 @@
 	(*messagesetpb.MessageSet)(nil), // 2: goproto.proto.messageset.MessageSet
 }
 var file_messageset_msetextpb_msetextpb_proto_depIdxs = []int32{
-	2, // goproto.proto.messageset.Ext1.message_set_extension:extendee -> goproto.proto.messageset.MessageSet
-	2, // goproto.proto.messageset.Ext2.message_set_extension:extendee -> goproto.proto.messageset.MessageSet
-	0, // goproto.proto.messageset.Ext1.message_set_extension:type_name -> goproto.proto.messageset.Ext1
-	1, // goproto.proto.messageset.Ext2.message_set_extension:type_name -> goproto.proto.messageset.Ext2
-	4, // starting offset of method output_type sub-list
-	4, // starting offset of method input_type sub-list
-	2, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	2, // 0: goproto.proto.messageset.Ext1.message_set_extension:extendee -> goproto.proto.messageset.MessageSet
+	2, // 1: goproto.proto.messageset.Ext2.message_set_extension:extendee -> goproto.proto.messageset.MessageSet
+	0, // 2: goproto.proto.messageset.Ext1.message_set_extension:type_name -> goproto.proto.messageset.Ext1
+	1, // 3: goproto.proto.messageset.Ext2.message_set_extension:type_name -> goproto.proto.messageset.Ext2
+	4, // [4:4] is the sub-list for method output_type
+	4, // [4:4] is the sub-list for method input_type
+	2, // [2:4] is the sub-list for extension type_name
+	0, // [0:2] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_messageset_msetextpb_msetextpb_proto_init() }
diff --git a/internal/testprotos/test/ext.pb.go b/internal/testprotos/test/ext.pb.go
index bbb124a..6fc92a1 100644
--- a/internal/testprotos/test/ext.pb.go
+++ b/internal/testprotos/test/ext.pb.go
@@ -66,12 +66,12 @@
 	(*TestAllExtensions)(nil), // 0: goproto.proto.test.TestAllExtensions
 }
 var file_test_ext_proto_depIdxs = []int32{
-	0, // goproto.proto.test.foreign_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	1, // starting offset of method output_type sub-list
-	1, // starting offset of method input_type sub-list
-	1, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // 0: goproto.proto.test.foreign_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	0, // [0:1] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_test_ext_proto_init() }
diff --git a/internal/testprotos/test/test.pb.go b/internal/testprotos/test/test.pb.go
index 9a323e0..7a90208 100644
--- a/internal/testprotos/test/test.pb.go
+++ b/internal/testprotos/test/test.pb.go
@@ -4465,156 +4465,156 @@
 	(ImportEnum)(0),                               // 47: goproto.proto.test.ImportEnum
 }
 var file_test_test_proto_depIdxs = []int32{
-	24,  // goproto.proto.test.TestAllTypes.optionalgroup:type_name -> goproto.proto.test.TestAllTypes.OptionalGroup
-	23,  // goproto.proto.test.TestAllTypes.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
-	6,   // goproto.proto.test.TestAllTypes.optional_foreign_message:type_name -> goproto.proto.test.ForeignMessage
-	46,  // goproto.proto.test.TestAllTypes.optional_import_message:type_name -> goproto.proto.test.ImportMessage
-	2,   // goproto.proto.test.TestAllTypes.optional_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
-	0,   // goproto.proto.test.TestAllTypes.optional_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
-	47,  // goproto.proto.test.TestAllTypes.optional_import_enum:type_name -> goproto.proto.test.ImportEnum
-	25,  // goproto.proto.test.TestAllTypes.repeatedgroup:type_name -> goproto.proto.test.TestAllTypes.RepeatedGroup
-	23,  // goproto.proto.test.TestAllTypes.repeated_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
-	6,   // goproto.proto.test.TestAllTypes.repeated_foreign_message:type_name -> goproto.proto.test.ForeignMessage
-	46,  // goproto.proto.test.TestAllTypes.repeated_importmessage:type_name -> goproto.proto.test.ImportMessage
-	2,   // goproto.proto.test.TestAllTypes.repeated_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
-	0,   // goproto.proto.test.TestAllTypes.repeated_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
-	47,  // goproto.proto.test.TestAllTypes.repeated_importenum:type_name -> goproto.proto.test.ImportEnum
-	26,  // goproto.proto.test.TestAllTypes.map_int32_int32:type_name -> goproto.proto.test.TestAllTypes.MapInt32Int32Entry
-	27,  // goproto.proto.test.TestAllTypes.map_int64_int64:type_name -> goproto.proto.test.TestAllTypes.MapInt64Int64Entry
-	28,  // goproto.proto.test.TestAllTypes.map_uint32_uint32:type_name -> goproto.proto.test.TestAllTypes.MapUint32Uint32Entry
-	29,  // goproto.proto.test.TestAllTypes.map_uint64_uint64:type_name -> goproto.proto.test.TestAllTypes.MapUint64Uint64Entry
-	30,  // goproto.proto.test.TestAllTypes.map_sint32_sint32:type_name -> goproto.proto.test.TestAllTypes.MapSint32Sint32Entry
-	31,  // goproto.proto.test.TestAllTypes.map_sint64_sint64:type_name -> goproto.proto.test.TestAllTypes.MapSint64Sint64Entry
-	32,  // goproto.proto.test.TestAllTypes.map_fixed32_fixed32:type_name -> goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry
-	33,  // goproto.proto.test.TestAllTypes.map_fixed64_fixed64:type_name -> goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry
-	34,  // goproto.proto.test.TestAllTypes.map_sfixed32_sfixed32:type_name -> goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry
-	35,  // goproto.proto.test.TestAllTypes.map_sfixed64_sfixed64:type_name -> goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry
-	36,  // goproto.proto.test.TestAllTypes.map_int32_float:type_name -> goproto.proto.test.TestAllTypes.MapInt32FloatEntry
-	37,  // goproto.proto.test.TestAllTypes.map_int32_double:type_name -> goproto.proto.test.TestAllTypes.MapInt32DoubleEntry
-	38,  // goproto.proto.test.TestAllTypes.map_bool_bool:type_name -> goproto.proto.test.TestAllTypes.MapBoolBoolEntry
-	39,  // goproto.proto.test.TestAllTypes.map_string_string:type_name -> goproto.proto.test.TestAllTypes.MapStringStringEntry
-	40,  // goproto.proto.test.TestAllTypes.map_string_bytes:type_name -> goproto.proto.test.TestAllTypes.MapStringBytesEntry
-	41,  // goproto.proto.test.TestAllTypes.map_string_nested_message:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry
-	42,  // goproto.proto.test.TestAllTypes.map_string_nested_enum:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry
-	2,   // goproto.proto.test.TestAllTypes.default_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
-	0,   // goproto.proto.test.TestAllTypes.default_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
-	23,  // goproto.proto.test.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
-	2,   // goproto.proto.test.TestAllTypes.oneof_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
-	12,  // goproto.proto.test.TestRequiredForeign.optional_message:type_name -> goproto.proto.test.TestRequired
-	12,  // goproto.proto.test.TestRequiredForeign.repeated_message:type_name -> goproto.proto.test.TestRequired
-	43,  // goproto.proto.test.TestRequiredForeign.map_message:type_name -> goproto.proto.test.TestRequiredForeign.MapMessageEntry
-	12,  // goproto.proto.test.TestRequiredForeign.oneof_message:type_name -> goproto.proto.test.TestRequired
-	44,  // goproto.proto.test.TestRequiredGroupFields.optionalgroup:type_name -> goproto.proto.test.TestRequiredGroupFields.OptionalGroup
-	45,  // goproto.proto.test.TestRequiredGroupFields.repeatedgroup:type_name -> goproto.proto.test.TestRequiredGroupFields.RepeatedGroup
-	0,   // goproto.proto.test.TestPackedTypes.packed_enum:type_name -> goproto.proto.test.ForeignEnum
-	0,   // goproto.proto.test.TestUnpackedTypes.unpacked_enum:type_name -> goproto.proto.test.ForeignEnum
-	4,   // goproto.proto.test.TestAllTypes.NestedMessage.corecursive:type_name -> goproto.proto.test.TestAllTypes
-	23,  // goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
-	2,   // goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
-	12,  // goproto.proto.test.TestRequiredForeign.MapMessageEntry.value:type_name -> goproto.proto.test.TestRequired
-	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
-	8,   // goproto.proto.test.optional_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_float_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_double_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_string_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optionalgroup_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_nested_message_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.optional_nested_enum_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_float_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_double_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_string_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeatedgroup_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_nested_message_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.repeated_nested_enum_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_float_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_double_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_string_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.default_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
-	18,  // goproto.proto.test.packed_int32_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_int64_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_uint32_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_uint64_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_sint32_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_sint64_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_fixed32_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_fixed64_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_sfixed32_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_sfixed64_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_float_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_double_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_bool_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	18,  // goproto.proto.test.packed_enum_extension:extendee -> goproto.proto.test.TestPackedExtensions
-	19,  // goproto.proto.test.unpacked_int32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_int64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_uint32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_uint64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_sint32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_sint64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_fixed32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_fixed64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_sfixed32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_sfixed64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_float_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_double_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_bool_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	19,  // goproto.proto.test.unpacked_enum_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
-	8,   // goproto.proto.test.TestNestedExtension.nested_string_extension:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.TestRequired.single:extendee -> goproto.proto.test.TestAllExtensions
-	8,   // goproto.proto.test.TestRequired.multi:extendee -> goproto.proto.test.TestAllExtensions
-	9,   // goproto.proto.test.optionalgroup_extension:type_name -> goproto.proto.test.OptionalGroup_extension
-	23,  // goproto.proto.test.optional_nested_message_extension:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
-	2,   // goproto.proto.test.optional_nested_enum_extension:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
-	10,  // goproto.proto.test.repeatedgroup_extension:type_name -> goproto.proto.test.RepeatedGroup_extension
-	23,  // goproto.proto.test.repeated_nested_message_extension:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
-	2,   // goproto.proto.test.repeated_nested_enum_extension:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
-	0,   // goproto.proto.test.packed_enum_extension:type_name -> goproto.proto.test.ForeignEnum
-	0,   // goproto.proto.test.unpacked_enum_extension:type_name -> goproto.proto.test.ForeignEnum
-	12,  // goproto.proto.test.TestRequired.single:type_name -> goproto.proto.test.TestRequired
-	12,  // goproto.proto.test.TestRequired.multi:type_name -> goproto.proto.test.TestRequired
-	20,  // goproto.proto.test.TestService.Foo:input_type -> goproto.proto.test.FooRequest
-	20,  // goproto.proto.test.TestService.TestStream:input_type -> goproto.proto.test.FooRequest
-	5,   // goproto.proto.test.TestDeprecatedService.Deprecated:input_type -> goproto.proto.test.TestDeprecatedMessage
-	21,  // goproto.proto.test.TestService.Foo:output_type -> goproto.proto.test.FooResponse
-	21,  // goproto.proto.test.TestService.TestStream:output_type -> goproto.proto.test.FooResponse
-	5,   // goproto.proto.test.TestDeprecatedService.Deprecated:output_type -> goproto.proto.test.TestDeprecatedMessage
-	142, // starting offset of method output_type sub-list
-	139, // starting offset of method input_type sub-list
-	129, // starting offset of extension type_name sub-list
-	47,  // starting offset of extension extendee sub-list
-	0,   // starting offset of field type_name sub-list
+	24,  // 0: goproto.proto.test.TestAllTypes.optionalgroup:type_name -> goproto.proto.test.TestAllTypes.OptionalGroup
+	23,  // 1: goproto.proto.test.TestAllTypes.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	6,   // 2: goproto.proto.test.TestAllTypes.optional_foreign_message:type_name -> goproto.proto.test.ForeignMessage
+	46,  // 3: goproto.proto.test.TestAllTypes.optional_import_message:type_name -> goproto.proto.test.ImportMessage
+	2,   // 4: goproto.proto.test.TestAllTypes.optional_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	0,   // 5: goproto.proto.test.TestAllTypes.optional_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
+	47,  // 6: goproto.proto.test.TestAllTypes.optional_import_enum:type_name -> goproto.proto.test.ImportEnum
+	25,  // 7: goproto.proto.test.TestAllTypes.repeatedgroup:type_name -> goproto.proto.test.TestAllTypes.RepeatedGroup
+	23,  // 8: goproto.proto.test.TestAllTypes.repeated_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	6,   // 9: goproto.proto.test.TestAllTypes.repeated_foreign_message:type_name -> goproto.proto.test.ForeignMessage
+	46,  // 10: goproto.proto.test.TestAllTypes.repeated_importmessage:type_name -> goproto.proto.test.ImportMessage
+	2,   // 11: goproto.proto.test.TestAllTypes.repeated_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	0,   // 12: goproto.proto.test.TestAllTypes.repeated_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
+	47,  // 13: goproto.proto.test.TestAllTypes.repeated_importenum:type_name -> goproto.proto.test.ImportEnum
+	26,  // 14: goproto.proto.test.TestAllTypes.map_int32_int32:type_name -> goproto.proto.test.TestAllTypes.MapInt32Int32Entry
+	27,  // 15: goproto.proto.test.TestAllTypes.map_int64_int64:type_name -> goproto.proto.test.TestAllTypes.MapInt64Int64Entry
+	28,  // 16: goproto.proto.test.TestAllTypes.map_uint32_uint32:type_name -> goproto.proto.test.TestAllTypes.MapUint32Uint32Entry
+	29,  // 17: goproto.proto.test.TestAllTypes.map_uint64_uint64:type_name -> goproto.proto.test.TestAllTypes.MapUint64Uint64Entry
+	30,  // 18: goproto.proto.test.TestAllTypes.map_sint32_sint32:type_name -> goproto.proto.test.TestAllTypes.MapSint32Sint32Entry
+	31,  // 19: goproto.proto.test.TestAllTypes.map_sint64_sint64:type_name -> goproto.proto.test.TestAllTypes.MapSint64Sint64Entry
+	32,  // 20: goproto.proto.test.TestAllTypes.map_fixed32_fixed32:type_name -> goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry
+	33,  // 21: goproto.proto.test.TestAllTypes.map_fixed64_fixed64:type_name -> goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry
+	34,  // 22: goproto.proto.test.TestAllTypes.map_sfixed32_sfixed32:type_name -> goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry
+	35,  // 23: goproto.proto.test.TestAllTypes.map_sfixed64_sfixed64:type_name -> goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry
+	36,  // 24: goproto.proto.test.TestAllTypes.map_int32_float:type_name -> goproto.proto.test.TestAllTypes.MapInt32FloatEntry
+	37,  // 25: goproto.proto.test.TestAllTypes.map_int32_double:type_name -> goproto.proto.test.TestAllTypes.MapInt32DoubleEntry
+	38,  // 26: goproto.proto.test.TestAllTypes.map_bool_bool:type_name -> goproto.proto.test.TestAllTypes.MapBoolBoolEntry
+	39,  // 27: goproto.proto.test.TestAllTypes.map_string_string:type_name -> goproto.proto.test.TestAllTypes.MapStringStringEntry
+	40,  // 28: goproto.proto.test.TestAllTypes.map_string_bytes:type_name -> goproto.proto.test.TestAllTypes.MapStringBytesEntry
+	41,  // 29: goproto.proto.test.TestAllTypes.map_string_nested_message:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry
+	42,  // 30: goproto.proto.test.TestAllTypes.map_string_nested_enum:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry
+	2,   // 31: goproto.proto.test.TestAllTypes.default_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	0,   // 32: goproto.proto.test.TestAllTypes.default_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
+	23,  // 33: goproto.proto.test.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	2,   // 34: goproto.proto.test.TestAllTypes.oneof_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	12,  // 35: goproto.proto.test.TestRequiredForeign.optional_message:type_name -> goproto.proto.test.TestRequired
+	12,  // 36: goproto.proto.test.TestRequiredForeign.repeated_message:type_name -> goproto.proto.test.TestRequired
+	43,  // 37: goproto.proto.test.TestRequiredForeign.map_message:type_name -> goproto.proto.test.TestRequiredForeign.MapMessageEntry
+	12,  // 38: goproto.proto.test.TestRequiredForeign.oneof_message:type_name -> goproto.proto.test.TestRequired
+	44,  // 39: goproto.proto.test.TestRequiredGroupFields.optionalgroup:type_name -> goproto.proto.test.TestRequiredGroupFields.OptionalGroup
+	45,  // 40: goproto.proto.test.TestRequiredGroupFields.repeatedgroup:type_name -> goproto.proto.test.TestRequiredGroupFields.RepeatedGroup
+	0,   // 41: goproto.proto.test.TestPackedTypes.packed_enum:type_name -> goproto.proto.test.ForeignEnum
+	0,   // 42: goproto.proto.test.TestUnpackedTypes.unpacked_enum:type_name -> goproto.proto.test.ForeignEnum
+	4,   // 43: goproto.proto.test.TestAllTypes.NestedMessage.corecursive:type_name -> goproto.proto.test.TestAllTypes
+	23,  // 44: goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	2,   // 45: goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	12,  // 46: goproto.proto.test.TestRequiredForeign.MapMessageEntry.value:type_name -> goproto.proto.test.TestRequired
+	8,   // 47: goproto.proto.test.optional_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 48: goproto.proto.test.optional_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 49: goproto.proto.test.optional_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 50: goproto.proto.test.optional_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 51: goproto.proto.test.optional_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 52: goproto.proto.test.optional_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 53: goproto.proto.test.optional_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 54: goproto.proto.test.optional_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 55: goproto.proto.test.optional_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 56: goproto.proto.test.optional_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 57: goproto.proto.test.optional_float_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 58: goproto.proto.test.optional_double_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 59: goproto.proto.test.optional_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 60: goproto.proto.test.optional_string_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 61: goproto.proto.test.optional_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 62: goproto.proto.test.optionalgroup_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 63: goproto.proto.test.optional_nested_message_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 64: goproto.proto.test.optional_nested_enum_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 65: goproto.proto.test.repeated_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 66: goproto.proto.test.repeated_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 67: goproto.proto.test.repeated_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 68: goproto.proto.test.repeated_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 69: goproto.proto.test.repeated_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 70: goproto.proto.test.repeated_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 71: goproto.proto.test.repeated_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 72: goproto.proto.test.repeated_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 73: goproto.proto.test.repeated_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 74: goproto.proto.test.repeated_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 75: goproto.proto.test.repeated_float_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 76: goproto.proto.test.repeated_double_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 77: goproto.proto.test.repeated_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 78: goproto.proto.test.repeated_string_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 79: goproto.proto.test.repeated_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 80: goproto.proto.test.repeatedgroup_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 81: goproto.proto.test.repeated_nested_message_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 82: goproto.proto.test.repeated_nested_enum_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 83: goproto.proto.test.default_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 84: goproto.proto.test.default_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 85: goproto.proto.test.default_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 86: goproto.proto.test.default_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 87: goproto.proto.test.default_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 88: goproto.proto.test.default_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 89: goproto.proto.test.default_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 90: goproto.proto.test.default_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 91: goproto.proto.test.default_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 92: goproto.proto.test.default_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 93: goproto.proto.test.default_float_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 94: goproto.proto.test.default_double_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 95: goproto.proto.test.default_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 96: goproto.proto.test.default_string_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 97: goproto.proto.test.default_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
+	18,  // 98: goproto.proto.test.packed_int32_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 99: goproto.proto.test.packed_int64_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 100: goproto.proto.test.packed_uint32_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 101: goproto.proto.test.packed_uint64_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 102: goproto.proto.test.packed_sint32_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 103: goproto.proto.test.packed_sint64_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 104: goproto.proto.test.packed_fixed32_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 105: goproto.proto.test.packed_fixed64_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 106: goproto.proto.test.packed_sfixed32_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 107: goproto.proto.test.packed_sfixed64_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 108: goproto.proto.test.packed_float_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 109: goproto.proto.test.packed_double_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 110: goproto.proto.test.packed_bool_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	18,  // 111: goproto.proto.test.packed_enum_extension:extendee -> goproto.proto.test.TestPackedExtensions
+	19,  // 112: goproto.proto.test.unpacked_int32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 113: goproto.proto.test.unpacked_int64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 114: goproto.proto.test.unpacked_uint32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 115: goproto.proto.test.unpacked_uint64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 116: goproto.proto.test.unpacked_sint32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 117: goproto.proto.test.unpacked_sint64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 118: goproto.proto.test.unpacked_fixed32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 119: goproto.proto.test.unpacked_fixed64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 120: goproto.proto.test.unpacked_sfixed32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 121: goproto.proto.test.unpacked_sfixed64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 122: goproto.proto.test.unpacked_float_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 123: goproto.proto.test.unpacked_double_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 124: goproto.proto.test.unpacked_bool_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	19,  // 125: goproto.proto.test.unpacked_enum_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+	8,   // 126: goproto.proto.test.TestNestedExtension.nested_string_extension:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 127: goproto.proto.test.TestRequired.single:extendee -> goproto.proto.test.TestAllExtensions
+	8,   // 128: goproto.proto.test.TestRequired.multi:extendee -> goproto.proto.test.TestAllExtensions
+	9,   // 129: goproto.proto.test.optionalgroup_extension:type_name -> goproto.proto.test.OptionalGroup_extension
+	23,  // 130: goproto.proto.test.optional_nested_message_extension:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	2,   // 131: goproto.proto.test.optional_nested_enum_extension:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	10,  // 132: goproto.proto.test.repeatedgroup_extension:type_name -> goproto.proto.test.RepeatedGroup_extension
+	23,  // 133: goproto.proto.test.repeated_nested_message_extension:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	2,   // 134: goproto.proto.test.repeated_nested_enum_extension:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	0,   // 135: goproto.proto.test.packed_enum_extension:type_name -> goproto.proto.test.ForeignEnum
+	0,   // 136: goproto.proto.test.unpacked_enum_extension:type_name -> goproto.proto.test.ForeignEnum
+	12,  // 137: goproto.proto.test.TestRequired.single:type_name -> goproto.proto.test.TestRequired
+	12,  // 138: goproto.proto.test.TestRequired.multi:type_name -> goproto.proto.test.TestRequired
+	20,  // 139: goproto.proto.test.TestService.Foo:input_type -> goproto.proto.test.FooRequest
+	20,  // 140: goproto.proto.test.TestService.TestStream:input_type -> goproto.proto.test.FooRequest
+	5,   // 141: goproto.proto.test.TestDeprecatedService.Deprecated:input_type -> goproto.proto.test.TestDeprecatedMessage
+	21,  // 142: goproto.proto.test.TestService.Foo:output_type -> goproto.proto.test.FooResponse
+	21,  // 143: goproto.proto.test.TestService.TestStream:output_type -> goproto.proto.test.FooResponse
+	5,   // 144: goproto.proto.test.TestDeprecatedService.Deprecated:output_type -> goproto.proto.test.TestDeprecatedMessage
+	142, // [142:145] is the sub-list for method output_type
+	139, // [139:142] is the sub-list for method input_type
+	129, // [129:139] is the sub-list for extension type_name
+	47,  // [47:129] is the sub-list for extension extendee
+	0,   // [0:47] is the sub-list for field type_name
 }
 
 func init() { file_test_test_proto_init() }
diff --git a/internal/testprotos/test/test_import.pb.go b/internal/testprotos/test/test_import.pb.go
index 56b1791..d2eb69d 100644
--- a/internal/testprotos/test/test_import.pb.go
+++ b/internal/testprotos/test/test_import.pb.go
@@ -134,11 +134,11 @@
 	(*ImportMessage)(nil), // 1: goproto.proto.test.ImportMessage
 }
 var file_test_test_import_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_test_test_import_proto_init() }
diff --git a/internal/testprotos/test/test_public.pb.go b/internal/testprotos/test/test_public.pb.go
index f694f37..0055855 100644
--- a/internal/testprotos/test/test_public.pb.go
+++ b/internal/testprotos/test/test_public.pb.go
@@ -77,11 +77,11 @@
 	(*PublicImportMessage)(nil), // 0: goproto.proto.test.PublicImportMessage
 }
 var file_test_test_public_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_test_test_public_proto_init() }
diff --git a/internal/testprotos/test/weak1/test_weak.pb.go b/internal/testprotos/test/weak1/test_weak.pb.go
index 1f43692..1b80b8b 100644
--- a/internal/testprotos/test/weak1/test_weak.pb.go
+++ b/internal/testprotos/test/weak1/test_weak.pb.go
@@ -88,11 +88,11 @@
 	(*WeakImportMessage1)(nil), // 0: goproto.proto.test.weak.WeakImportMessage1
 }
 var file_test_weak1_test_weak_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_test_weak1_test_weak_proto_init() }
diff --git a/internal/testprotos/test/weak2/test_weak.pb.go b/internal/testprotos/test/weak2/test_weak.pb.go
index 4105754..a1d2e07 100644
--- a/internal/testprotos/test/weak2/test_weak.pb.go
+++ b/internal/testprotos/test/weak2/test_weak.pb.go
@@ -88,11 +88,11 @@
 	(*WeakImportMessage2)(nil), // 0: goproto.proto.test.weak.WeakImportMessage2
 }
 var file_test_weak2_test_weak_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_test_weak2_test_weak_proto_init() }
diff --git a/internal/testprotos/test3/test.pb.go b/internal/testprotos/test3/test.pb.go
index c6a2877..cd75988 100644
--- a/internal/testprotos/test3/test.pb.go
+++ b/internal/testprotos/test3/test.pb.go
@@ -1298,45 +1298,45 @@
 	(ImportEnum)(0),                    // 23: goproto.proto.test3.ImportEnum
 }
 var file_test3_test_proto_depIdxs = []int32{
-	4,  // goproto.proto.test3.TestAllTypes.optional_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage
-	3,  // goproto.proto.test3.TestAllTypes.optional_foreign_message:type_name -> goproto.proto.test3.ForeignMessage
-	22, // goproto.proto.test3.TestAllTypes.optional_import_message:type_name -> goproto.proto.test3.ImportMessage
-	1,  // goproto.proto.test3.TestAllTypes.optional_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum
-	0,  // goproto.proto.test3.TestAllTypes.optional_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum
-	23, // goproto.proto.test3.TestAllTypes.optional_import_enum:type_name -> goproto.proto.test3.ImportEnum
-	4,  // goproto.proto.test3.TestAllTypes.repeated_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage
-	3,  // goproto.proto.test3.TestAllTypes.repeated_foreign_message:type_name -> goproto.proto.test3.ForeignMessage
-	22, // goproto.proto.test3.TestAllTypes.repeated_importmessage:type_name -> goproto.proto.test3.ImportMessage
-	1,  // goproto.proto.test3.TestAllTypes.repeated_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum
-	0,  // goproto.proto.test3.TestAllTypes.repeated_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum
-	23, // goproto.proto.test3.TestAllTypes.repeated_importenum:type_name -> goproto.proto.test3.ImportEnum
-	5,  // goproto.proto.test3.TestAllTypes.map_int32_int32:type_name -> goproto.proto.test3.TestAllTypes.MapInt32Int32Entry
-	6,  // goproto.proto.test3.TestAllTypes.map_int64_int64:type_name -> goproto.proto.test3.TestAllTypes.MapInt64Int64Entry
-	7,  // goproto.proto.test3.TestAllTypes.map_uint32_uint32:type_name -> goproto.proto.test3.TestAllTypes.MapUint32Uint32Entry
-	8,  // goproto.proto.test3.TestAllTypes.map_uint64_uint64:type_name -> goproto.proto.test3.TestAllTypes.MapUint64Uint64Entry
-	9,  // goproto.proto.test3.TestAllTypes.map_sint32_sint32:type_name -> goproto.proto.test3.TestAllTypes.MapSint32Sint32Entry
-	10, // goproto.proto.test3.TestAllTypes.map_sint64_sint64:type_name -> goproto.proto.test3.TestAllTypes.MapSint64Sint64Entry
-	11, // goproto.proto.test3.TestAllTypes.map_fixed32_fixed32:type_name -> goproto.proto.test3.TestAllTypes.MapFixed32Fixed32Entry
-	12, // goproto.proto.test3.TestAllTypes.map_fixed64_fixed64:type_name -> goproto.proto.test3.TestAllTypes.MapFixed64Fixed64Entry
-	13, // goproto.proto.test3.TestAllTypes.map_sfixed32_sfixed32:type_name -> goproto.proto.test3.TestAllTypes.MapSfixed32Sfixed32Entry
-	14, // goproto.proto.test3.TestAllTypes.map_sfixed64_sfixed64:type_name -> goproto.proto.test3.TestAllTypes.MapSfixed64Sfixed64Entry
-	15, // goproto.proto.test3.TestAllTypes.map_int32_float:type_name -> goproto.proto.test3.TestAllTypes.MapInt32FloatEntry
-	16, // goproto.proto.test3.TestAllTypes.map_int32_double:type_name -> goproto.proto.test3.TestAllTypes.MapInt32DoubleEntry
-	17, // goproto.proto.test3.TestAllTypes.map_bool_bool:type_name -> goproto.proto.test3.TestAllTypes.MapBoolBoolEntry
-	18, // goproto.proto.test3.TestAllTypes.map_string_string:type_name -> goproto.proto.test3.TestAllTypes.MapStringStringEntry
-	19, // goproto.proto.test3.TestAllTypes.map_string_bytes:type_name -> goproto.proto.test3.TestAllTypes.MapStringBytesEntry
-	20, // goproto.proto.test3.TestAllTypes.map_string_nested_message:type_name -> goproto.proto.test3.TestAllTypes.MapStringNestedMessageEntry
-	21, // goproto.proto.test3.TestAllTypes.map_string_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.MapStringNestedEnumEntry
-	4,  // goproto.proto.test3.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage
-	1,  // goproto.proto.test3.TestAllTypes.oneof_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum
-	2,  // goproto.proto.test3.TestAllTypes.NestedMessage.corecursive:type_name -> goproto.proto.test3.TestAllTypes
-	4,  // goproto.proto.test3.TestAllTypes.MapStringNestedMessageEntry.value:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage
-	1,  // goproto.proto.test3.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum
-	34, // starting offset of method output_type sub-list
-	34, // starting offset of method input_type sub-list
-	34, // starting offset of extension type_name sub-list
-	34, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	4,  // 0: goproto.proto.test3.TestAllTypes.optional_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage
+	3,  // 1: goproto.proto.test3.TestAllTypes.optional_foreign_message:type_name -> goproto.proto.test3.ForeignMessage
+	22, // 2: goproto.proto.test3.TestAllTypes.optional_import_message:type_name -> goproto.proto.test3.ImportMessage
+	1,  // 3: goproto.proto.test3.TestAllTypes.optional_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum
+	0,  // 4: goproto.proto.test3.TestAllTypes.optional_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum
+	23, // 5: goproto.proto.test3.TestAllTypes.optional_import_enum:type_name -> goproto.proto.test3.ImportEnum
+	4,  // 6: goproto.proto.test3.TestAllTypes.repeated_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage
+	3,  // 7: goproto.proto.test3.TestAllTypes.repeated_foreign_message:type_name -> goproto.proto.test3.ForeignMessage
+	22, // 8: goproto.proto.test3.TestAllTypes.repeated_importmessage:type_name -> goproto.proto.test3.ImportMessage
+	1,  // 9: goproto.proto.test3.TestAllTypes.repeated_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum
+	0,  // 10: goproto.proto.test3.TestAllTypes.repeated_foreign_enum:type_name -> goproto.proto.test3.ForeignEnum
+	23, // 11: goproto.proto.test3.TestAllTypes.repeated_importenum:type_name -> goproto.proto.test3.ImportEnum
+	5,  // 12: goproto.proto.test3.TestAllTypes.map_int32_int32:type_name -> goproto.proto.test3.TestAllTypes.MapInt32Int32Entry
+	6,  // 13: goproto.proto.test3.TestAllTypes.map_int64_int64:type_name -> goproto.proto.test3.TestAllTypes.MapInt64Int64Entry
+	7,  // 14: goproto.proto.test3.TestAllTypes.map_uint32_uint32:type_name -> goproto.proto.test3.TestAllTypes.MapUint32Uint32Entry
+	8,  // 15: goproto.proto.test3.TestAllTypes.map_uint64_uint64:type_name -> goproto.proto.test3.TestAllTypes.MapUint64Uint64Entry
+	9,  // 16: goproto.proto.test3.TestAllTypes.map_sint32_sint32:type_name -> goproto.proto.test3.TestAllTypes.MapSint32Sint32Entry
+	10, // 17: goproto.proto.test3.TestAllTypes.map_sint64_sint64:type_name -> goproto.proto.test3.TestAllTypes.MapSint64Sint64Entry
+	11, // 18: goproto.proto.test3.TestAllTypes.map_fixed32_fixed32:type_name -> goproto.proto.test3.TestAllTypes.MapFixed32Fixed32Entry
+	12, // 19: goproto.proto.test3.TestAllTypes.map_fixed64_fixed64:type_name -> goproto.proto.test3.TestAllTypes.MapFixed64Fixed64Entry
+	13, // 20: goproto.proto.test3.TestAllTypes.map_sfixed32_sfixed32:type_name -> goproto.proto.test3.TestAllTypes.MapSfixed32Sfixed32Entry
+	14, // 21: goproto.proto.test3.TestAllTypes.map_sfixed64_sfixed64:type_name -> goproto.proto.test3.TestAllTypes.MapSfixed64Sfixed64Entry
+	15, // 22: goproto.proto.test3.TestAllTypes.map_int32_float:type_name -> goproto.proto.test3.TestAllTypes.MapInt32FloatEntry
+	16, // 23: goproto.proto.test3.TestAllTypes.map_int32_double:type_name -> goproto.proto.test3.TestAllTypes.MapInt32DoubleEntry
+	17, // 24: goproto.proto.test3.TestAllTypes.map_bool_bool:type_name -> goproto.proto.test3.TestAllTypes.MapBoolBoolEntry
+	18, // 25: goproto.proto.test3.TestAllTypes.map_string_string:type_name -> goproto.proto.test3.TestAllTypes.MapStringStringEntry
+	19, // 26: goproto.proto.test3.TestAllTypes.map_string_bytes:type_name -> goproto.proto.test3.TestAllTypes.MapStringBytesEntry
+	20, // 27: goproto.proto.test3.TestAllTypes.map_string_nested_message:type_name -> goproto.proto.test3.TestAllTypes.MapStringNestedMessageEntry
+	21, // 28: goproto.proto.test3.TestAllTypes.map_string_nested_enum:type_name -> goproto.proto.test3.TestAllTypes.MapStringNestedEnumEntry
+	4,  // 29: goproto.proto.test3.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage
+	1,  // 30: goproto.proto.test3.TestAllTypes.oneof_enum:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum
+	2,  // 31: goproto.proto.test3.TestAllTypes.NestedMessage.corecursive:type_name -> goproto.proto.test3.TestAllTypes
+	4,  // 32: goproto.proto.test3.TestAllTypes.MapStringNestedMessageEntry.value:type_name -> goproto.proto.test3.TestAllTypes.NestedMessage
+	1,  // 33: goproto.proto.test3.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test3.TestAllTypes.NestedEnum
+	34, // [34:34] is the sub-list for method output_type
+	34, // [34:34] is the sub-list for method input_type
+	34, // [34:34] is the sub-list for extension type_name
+	34, // [34:34] is the sub-list for extension extendee
+	0,  // [0:34] is the sub-list for field type_name
 }
 
 func init() { file_test3_test_proto_init() }
diff --git a/internal/testprotos/test3/test_import.pb.go b/internal/testprotos/test3/test_import.pb.go
index b928f16..878330d 100644
--- a/internal/testprotos/test3/test_import.pb.go
+++ b/internal/testprotos/test3/test_import.pb.go
@@ -124,11 +124,11 @@
 	(*ImportMessage)(nil), // 1: goproto.proto.test3.ImportMessage
 }
 var file_test3_test_import_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_test3_test_import_proto_init() }
diff --git a/reflect/protoregistry/testprotos/test.pb.go b/reflect/protoregistry/testprotos/test.pb.go
index 1f04065..c9f59a5 100644
--- a/reflect/protoregistry/testprotos/test.pb.go
+++ b/reflect/protoregistry/testprotos/test.pb.go
@@ -464,21 +464,21 @@
 	(*Message4)(nil), // 6: testprotos.Message4
 }
 var file_test_proto_depIdxs = []int32{
-	3,  // testprotos.string_field:extendee -> testprotos.Message1
-	3,  // testprotos.enum_field:extendee -> testprotos.Message1
-	3,  // testprotos.message_field:extendee -> testprotos.Message1
-	3,  // testprotos.Message4.message_field:extendee -> testprotos.Message1
-	3,  // testprotos.Message4.enum_field:extendee -> testprotos.Message1
-	3,  // testprotos.Message4.string_field:extendee -> testprotos.Message1
-	0,  // testprotos.enum_field:type_name -> testprotos.Enum1
-	4,  // testprotos.message_field:type_name -> testprotos.Message2
-	4,  // testprotos.Message4.message_field:type_name -> testprotos.Message2
-	0,  // testprotos.Message4.enum_field:type_name -> testprotos.Enum1
-	10, // starting offset of method output_type sub-list
-	10, // starting offset of method input_type sub-list
-	6,  // starting offset of extension type_name sub-list
-	0,  // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	3,  // 0: testprotos.string_field:extendee -> testprotos.Message1
+	3,  // 1: testprotos.enum_field:extendee -> testprotos.Message1
+	3,  // 2: testprotos.message_field:extendee -> testprotos.Message1
+	3,  // 3: testprotos.Message4.message_field:extendee -> testprotos.Message1
+	3,  // 4: testprotos.Message4.enum_field:extendee -> testprotos.Message1
+	3,  // 5: testprotos.Message4.string_field:extendee -> testprotos.Message1
+	0,  // 6: testprotos.enum_field:type_name -> testprotos.Enum1
+	4,  // 7: testprotos.message_field:type_name -> testprotos.Message2
+	4,  // 8: testprotos.Message4.message_field:type_name -> testprotos.Message2
+	0,  // 9: testprotos.Message4.enum_field:type_name -> testprotos.Enum1
+	10, // [10:10] is the sub-list for method output_type
+	10, // [10:10] is the sub-list for method input_type
+	6,  // [6:10] is the sub-list for extension type_name
+	0,  // [0:6] is the sub-list for extension extendee
+	0,  // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_test_proto_init() }
diff --git a/types/descriptorpb/descriptor.pb.go b/types/descriptorpb/descriptor.pb.go
index 380b4cc..30d77cc 100644
--- a/types/descriptorpb/descriptor.pb.go
+++ b/types/descriptorpb/descriptor.pb.go
@@ -3451,54 +3451,54 @@
 	(*GeneratedCodeInfo_Annotation)(nil),          // 32: google.protobuf.GeneratedCodeInfo.Annotation
 }
 var file_google_protobuf_descriptor_proto_depIdxs = []int32{
-	7,  // google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto
-	8,  // google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto
-	12, // google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto
-	14, // google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto
-	10, // google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto
-	16, // google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions
-	25, // google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo
-	10, // google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto
-	10, // google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto
-	8,  // google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto
-	12, // google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto
-	27, // google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange
-	11, // google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto
-	17, // google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions
-	28, // google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange
-	24, // google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	1,  // google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label
-	0,  // google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type
-	18, // google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions
-	19, // google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions
-	13, // google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto
-	20, // google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions
-	29, // google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange
-	21, // google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions
-	15, // google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto
-	22, // google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions
-	23, // google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions
-	2,  // google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode
-	24, // google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	24, // google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	3,  // google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType
-	4,  // google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType
-	24, // google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	24, // google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	24, // google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	24, // google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	24, // google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	5,  // google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel
-	24, // google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
-	30, // google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart
-	31, // google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location
-	32, // google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation
-	9,  // google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions
-	43, // starting offset of method output_type sub-list
-	43, // starting offset of method input_type sub-list
-	43, // starting offset of extension type_name sub-list
-	43, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	7,  // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto
+	8,  // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto
+	12, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto
+	14, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto
+	10, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto
+	16, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions
+	25, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo
+	10, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto
+	10, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto
+	8,  // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto
+	12, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto
+	27, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange
+	11, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto
+	17, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions
+	28, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange
+	24, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	1,  // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label
+	0,  // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type
+	18, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions
+	19, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions
+	13, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto
+	20, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions
+	29, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange
+	21, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions
+	15, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto
+	22, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions
+	23, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions
+	2,  // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode
+	24, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	24, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	3,  // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType
+	4,  // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType
+	24, // 32: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	24, // 33: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	24, // 34: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	24, // 35: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	24, // 36: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	5,  // 37: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel
+	24, // 38: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+	30, // 39: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart
+	31, // 40: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location
+	32, // 41: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation
+	9,  // 42: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions
+	43, // [43:43] is the sub-list for method output_type
+	43, // [43:43] is the sub-list for method input_type
+	43, // [43:43] is the sub-list for extension type_name
+	43, // [43:43] is the sub-list for extension extendee
+	0,  // [0:43] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_descriptor_proto_init() }
diff --git a/types/known/anypb/any.pb.go b/types/known/anypb/any.pb.go
index 01982e3..04843d3 100644
--- a/types/known/anypb/any.pb.go
+++ b/types/known/anypb/any.pb.go
@@ -236,11 +236,11 @@
 	(*Any)(nil), // 0: google.protobuf.Any
 }
 var file_google_protobuf_any_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_any_proto_init() }
diff --git a/types/known/apipb/api.pb.go b/types/known/apipb/api.pb.go
index 14dbef4..e742c23 100644
--- a/types/known/apipb/api.pb.go
+++ b/types/known/apipb/api.pb.go
@@ -484,18 +484,18 @@
 	(typepb.Syntax)(0),                    // 5: google.protobuf.Syntax
 }
 var file_google_protobuf_api_proto_depIdxs = []int32{
-	1, // google.protobuf.Api.methods:type_name -> google.protobuf.Method
-	3, // google.protobuf.Api.options:type_name -> google.protobuf.Option
-	4, // google.protobuf.Api.source_context:type_name -> google.protobuf.SourceContext
-	2, // google.protobuf.Api.mixins:type_name -> google.protobuf.Mixin
-	5, // google.protobuf.Api.syntax:type_name -> google.protobuf.Syntax
-	3, // google.protobuf.Method.options:type_name -> google.protobuf.Option
-	5, // google.protobuf.Method.syntax:type_name -> google.protobuf.Syntax
-	7, // starting offset of method output_type sub-list
-	7, // starting offset of method input_type sub-list
-	7, // starting offset of extension type_name sub-list
-	7, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	1, // 0: google.protobuf.Api.methods:type_name -> google.protobuf.Method
+	3, // 1: google.protobuf.Api.options:type_name -> google.protobuf.Option
+	4, // 2: google.protobuf.Api.source_context:type_name -> google.protobuf.SourceContext
+	2, // 3: google.protobuf.Api.mixins:type_name -> google.protobuf.Mixin
+	5, // 4: google.protobuf.Api.syntax:type_name -> google.protobuf.Syntax
+	3, // 5: google.protobuf.Method.options:type_name -> google.protobuf.Option
+	5, // 6: google.protobuf.Method.syntax:type_name -> google.protobuf.Syntax
+	7, // [7:7] is the sub-list for method output_type
+	7, // [7:7] is the sub-list for method input_type
+	7, // [7:7] is the sub-list for extension type_name
+	7, // [7:7] is the sub-list for extension extendee
+	0, // [0:7] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_api_proto_init() }
diff --git a/types/known/durationpb/duration.pb.go b/types/known/durationpb/duration.pb.go
index 9492b42..2983e01 100644
--- a/types/known/durationpb/duration.pb.go
+++ b/types/known/durationpb/duration.pb.go
@@ -197,11 +197,11 @@
 	(*Duration)(nil), // 0: google.protobuf.Duration
 }
 var file_google_protobuf_duration_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_duration_proto_init() }
diff --git a/types/known/emptypb/empty.pb.go b/types/known/emptypb/empty.pb.go
index 163fa11..08a7907 100644
--- a/types/known/emptypb/empty.pb.go
+++ b/types/known/emptypb/empty.pb.go
@@ -116,11 +116,11 @@
 	(*Empty)(nil), // 0: google.protobuf.Empty
 }
 var file_google_protobuf_empty_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_empty_proto_init() }
diff --git a/types/known/fieldmaskpb/field_mask.pb.go b/types/known/fieldmaskpb/field_mask.pb.go
index f88becb..13e963b 100644
--- a/types/known/fieldmaskpb/field_mask.pb.go
+++ b/types/known/fieldmaskpb/field_mask.pb.go
@@ -319,11 +319,11 @@
 	(*FieldMask)(nil), // 0: google.protobuf.FieldMask
 }
 var file_google_protobuf_field_mask_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_field_mask_proto_init() }
diff --git a/types/known/sourcecontextpb/source_context.pb.go b/types/known/sourcecontextpb/source_context.pb.go
index 7f0a94d..45ac295 100644
--- a/types/known/sourcecontextpb/source_context.pb.go
+++ b/types/known/sourcecontextpb/source_context.pb.go
@@ -124,11 +124,11 @@
 	(*SourceContext)(nil), // 0: google.protobuf.SourceContext
 }
 var file_google_protobuf_source_context_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_source_context_proto_init() }
diff --git a/types/known/structpb/struct.pb.go b/types/known/structpb/struct.pb.go
index 2596396..905c84d 100644
--- a/types/known/structpb/struct.pb.go
+++ b/types/known/structpb/struct.pb.go
@@ -404,17 +404,17 @@
 	nil,               // 4: google.protobuf.Struct.FieldsEntry
 }
 var file_google_protobuf_struct_proto_depIdxs = []int32{
-	4, // google.protobuf.Struct.fields:type_name -> google.protobuf.Struct.FieldsEntry
-	0, // google.protobuf.Value.null_value:type_name -> google.protobuf.NullValue
-	1, // google.protobuf.Value.struct_value:type_name -> google.protobuf.Struct
-	3, // google.protobuf.Value.list_value:type_name -> google.protobuf.ListValue
-	2, // google.protobuf.ListValue.values:type_name -> google.protobuf.Value
-	2, // google.protobuf.Struct.FieldsEntry.value:type_name -> google.protobuf.Value
-	6, // starting offset of method output_type sub-list
-	6, // starting offset of method input_type sub-list
-	6, // starting offset of extension type_name sub-list
-	6, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	4, // 0: google.protobuf.Struct.fields:type_name -> google.protobuf.Struct.FieldsEntry
+	0, // 1: google.protobuf.Value.null_value:type_name -> google.protobuf.NullValue
+	1, // 2: google.protobuf.Value.struct_value:type_name -> google.protobuf.Struct
+	3, // 3: google.protobuf.Value.list_value:type_name -> google.protobuf.ListValue
+	2, // 4: google.protobuf.ListValue.values:type_name -> google.protobuf.Value
+	2, // 5: google.protobuf.Struct.FieldsEntry.value:type_name -> google.protobuf.Value
+	6, // [6:6] is the sub-list for method output_type
+	6, // [6:6] is the sub-list for method input_type
+	6, // [6:6] is the sub-list for extension type_name
+	6, // [6:6] is the sub-list for extension extendee
+	0, // [0:6] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_struct_proto_init() }
diff --git a/types/known/timestamppb/timestamp.pb.go b/types/known/timestamppb/timestamp.pb.go
index fa32301..27fa027 100644
--- a/types/known/timestamppb/timestamp.pb.go
+++ b/types/known/timestamppb/timestamp.pb.go
@@ -217,11 +217,11 @@
 	(*Timestamp)(nil), // 0: google.protobuf.Timestamp
 }
 var file_google_protobuf_timestamp_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_timestamp_proto_init() }
diff --git a/types/known/typepb/type.pb.go b/types/known/typepb/type.pb.go
index 44afbc7..75ab832 100644
--- a/types/known/typepb/type.pb.go
+++ b/types/known/typepb/type.pb.go
@@ -830,24 +830,24 @@
 	(*anypb.Any)(nil),                     // 9: google.protobuf.Any
 }
 var file_google_protobuf_type_proto_depIdxs = []int32{
-	4,  // google.protobuf.Type.fields:type_name -> google.protobuf.Field
-	7,  // google.protobuf.Type.options:type_name -> google.protobuf.Option
-	8,  // google.protobuf.Type.source_context:type_name -> google.protobuf.SourceContext
-	0,  // google.protobuf.Type.syntax:type_name -> google.protobuf.Syntax
-	1,  // google.protobuf.Field.kind:type_name -> google.protobuf.Field.Kind
-	2,  // google.protobuf.Field.cardinality:type_name -> google.protobuf.Field.Cardinality
-	7,  // google.protobuf.Field.options:type_name -> google.protobuf.Option
-	6,  // google.protobuf.Enum.enumvalue:type_name -> google.protobuf.EnumValue
-	7,  // google.protobuf.Enum.options:type_name -> google.protobuf.Option
-	8,  // google.protobuf.Enum.source_context:type_name -> google.protobuf.SourceContext
-	0,  // google.protobuf.Enum.syntax:type_name -> google.protobuf.Syntax
-	7,  // google.protobuf.EnumValue.options:type_name -> google.protobuf.Option
-	9,  // google.protobuf.Option.value:type_name -> google.protobuf.Any
-	13, // starting offset of method output_type sub-list
-	13, // starting offset of method input_type sub-list
-	13, // starting offset of extension type_name sub-list
-	13, // starting offset of extension extendee sub-list
-	0,  // starting offset of field type_name sub-list
+	4,  // 0: google.protobuf.Type.fields:type_name -> google.protobuf.Field
+	7,  // 1: google.protobuf.Type.options:type_name -> google.protobuf.Option
+	8,  // 2: google.protobuf.Type.source_context:type_name -> google.protobuf.SourceContext
+	0,  // 3: google.protobuf.Type.syntax:type_name -> google.protobuf.Syntax
+	1,  // 4: google.protobuf.Field.kind:type_name -> google.protobuf.Field.Kind
+	2,  // 5: google.protobuf.Field.cardinality:type_name -> google.protobuf.Field.Cardinality
+	7,  // 6: google.protobuf.Field.options:type_name -> google.protobuf.Option
+	6,  // 7: google.protobuf.Enum.enumvalue:type_name -> google.protobuf.EnumValue
+	7,  // 8: google.protobuf.Enum.options:type_name -> google.protobuf.Option
+	8,  // 9: google.protobuf.Enum.source_context:type_name -> google.protobuf.SourceContext
+	0,  // 10: google.protobuf.Enum.syntax:type_name -> google.protobuf.Syntax
+	7,  // 11: google.protobuf.EnumValue.options:type_name -> google.protobuf.Option
+	9,  // 12: google.protobuf.Option.value:type_name -> google.protobuf.Any
+	13, // [13:13] is the sub-list for method output_type
+	13, // [13:13] is the sub-list for method input_type
+	13, // [13:13] is the sub-list for extension type_name
+	13, // [13:13] is the sub-list for extension extendee
+	0,  // [0:13] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_type_proto_init() }
diff --git a/types/known/wrapperspb/wrappers.pb.go b/types/known/wrapperspb/wrappers.pb.go
index f3e7851..4dd89e3 100644
--- a/types/known/wrapperspb/wrappers.pb.go
+++ b/types/known/wrapperspb/wrappers.pb.go
@@ -527,11 +527,11 @@
 	(*BytesValue)(nil),  // 8: google.protobuf.BytesValue
 }
 var file_google_protobuf_wrappers_proto_depIdxs = []int32{
-	0, // starting offset of method output_type sub-list
-	0, // starting offset of method input_type sub-list
-	0, // starting offset of extension type_name sub-list
-	0, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	0, // [0:0] is the sub-list for method output_type
+	0, // [0:0] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_wrappers_proto_init() }
diff --git a/types/pluginpb/plugin.pb.go b/types/pluginpb/plugin.pb.go
index 441437a..210e767 100644
--- a/types/pluginpb/plugin.pb.go
+++ b/types/pluginpb/plugin.pb.go
@@ -452,14 +452,14 @@
 	(*descriptorpb.FileDescriptorProto)(nil), // 4: google.protobuf.FileDescriptorProto
 }
 var file_google_protobuf_compiler_plugin_proto_depIdxs = []int32{
-	4, // google.protobuf.compiler.CodeGeneratorRequest.proto_file:type_name -> google.protobuf.FileDescriptorProto
-	0, // google.protobuf.compiler.CodeGeneratorRequest.compiler_version:type_name -> google.protobuf.compiler.Version
-	3, // google.protobuf.compiler.CodeGeneratorResponse.file:type_name -> google.protobuf.compiler.CodeGeneratorResponse.File
-	3, // starting offset of method output_type sub-list
-	3, // starting offset of method input_type sub-list
-	3, // starting offset of extension type_name sub-list
-	3, // starting offset of extension extendee sub-list
-	0, // starting offset of field type_name sub-list
+	4, // 0: google.protobuf.compiler.CodeGeneratorRequest.proto_file:type_name -> google.protobuf.FileDescriptorProto
+	0, // 1: google.protobuf.compiler.CodeGeneratorRequest.compiler_version:type_name -> google.protobuf.compiler.Version
+	3, // 2: google.protobuf.compiler.CodeGeneratorResponse.file:type_name -> google.protobuf.compiler.CodeGeneratorResponse.File
+	3, // [3:3] is the sub-list for method output_type
+	3, // [3:3] is the sub-list for method input_type
+	3, // [3:3] is the sub-list for extension type_name
+	3, // [3:3] is the sub-list for extension extendee
+	0, // [0:3] is the sub-list for field type_name
 }
 
 func init() { file_google_protobuf_compiler_plugin_proto_init() }