// Copyright 2024 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This proto verifies that we keep the name mangling algorithm (which is
// position dependent) intact in the protoc_gen_go generator. The field names
// and the getter names have to be kept intact over time, both in the OPEN and
// in the HYBRID API. How fields are "mangled" is described in a comment per
// field.

// The order of "evaluation" of fields is important. Fields are evaluated in
// order of appearance, except the oneof union names, that are evaluated after
// their first member. For each field, check if there is a previous field name
// or getter name that clashes with this field or it's getter. In case there is
// a clash, add an _ to the field name and repeat. In the case of oneof's, the
// union will be renamed if it clashes with it's first member, but not if it
// clashes with it's second.

// This scheme is here for backwards compatibility.
// The type of clashes that can be are the following:
// 1 - My field name clashes with their getter name
// 2 - My getter name clashes with their field name

// Code generated by protoc-gen-go. DO NOT EDIT.
// source: cmd/protoc-gen-go/testdata/nameclash/test_name_clash_hybrid.proto

//go:build !protoopaque

package test_name_clash_hybrid

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	_ "google.golang.org/protobuf/types/gofeaturespb"
	reflect "reflect"
)

type M1 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Old Scheme:
	// initial name in Go     | Clashes with field | type | final name
	// Foo                    | -                  | -    | Foo
	// GetFoo                 | foo                | 1    | GetFoo_
	// GetGetFoo              | -                  | -    | GetGetFoo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | -                  | -    | GetGetGetFoo
	Foo           *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	GetFoo_       *int32 `protobuf:"varint,2,opt,name=get_foo,json=getFoo" json:"get_foo,omitempty"`
	GetGetFoo     *int32 `protobuf:"varint,3,opt,name=get_get_foo,json=getGetFoo" json:"get_get_foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M1) Reset() {
	*x = M1{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M1) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M1) ProtoMessage() {}

func (x *M1) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M1) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M1) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M1) Get_GetFoo() int32 {
	if x != nil && x.GetFoo_ != nil {
		return *x.GetFoo_
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M1) GetGetFoo_() int32 {
	return x.Get_GetFoo()
}

func (x *M1) GetGetGetFoo() int32 {
	if x != nil && x.GetGetFoo != nil {
		return *x.GetGetFoo
	}
	return 0
}

func (x *M1) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M1) Set_GetFoo(v int32) {
	x.GetFoo_ = &v
}

func (x *M1) SetGetGetFoo(v int32) {
	x.GetGetFoo = &v
}

func (x *M1) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M1) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetFoo_ != nil
}

func (x *M1) HasGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetFoo != nil
}

func (x *M1) Clear_Foo() {
	x.Foo = nil
}

func (x *M1) Clear_GetFoo() {
	x.GetFoo_ = nil
}

func (x *M1) ClearGetGetFoo() {
	x.GetGetFoo = nil
}

type M1_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Old Scheme:
	// initial name in Go     | Clashes with field | type | final name
	// Foo                    | -                  | -    | Foo
	// GetFoo                 | foo                | 1    | GetFoo_
	// GetGetFoo              | -                  | -    | GetGetFoo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | -                  | -    | GetGetGetFoo
	Foo       *int32
	GetFoo    *int32
	GetGetFoo *int32
}

func (b0 M1_builder) Build() *M1 {
	m0 := &M1{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	x.GetFoo_ = b.GetFoo
	x.GetGetFoo = b.GetGetFoo
	return m0
}

type M2 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Old Scheme:
	// initial name in Go     | Clashes with field | type | final name
	// GetGetFoo              | -                  | -    | GetGetFoo
	// GetFoo                 | get_get_foo        | 2    | GetFoo_
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | -                  | -    | GetGetGetFoo
	GetGetFoo     *int32 `protobuf:"varint,3,opt,name=get_get_foo,json=getGetFoo" json:"get_get_foo,omitempty"`
	GetFoo_       *int32 `protobuf:"varint,2,opt,name=get_foo,json=getFoo" json:"get_foo,omitempty"`
	Foo           *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M2) Reset() {
	*x = M2{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M2) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M2) ProtoMessage() {}

func (x *M2) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M2) GetGetGetFoo() int32 {
	if x != nil && x.GetGetFoo != nil {
		return *x.GetGetFoo
	}
	return 0
}

func (x *M2) Get_GetFoo() int32 {
	if x != nil && x.GetFoo_ != nil {
		return *x.GetFoo_
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M2) GetGetFoo_() int32 {
	return x.Get_GetFoo()
}

func (x *M2) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M2) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M2) SetGetGetFoo(v int32) {
	x.GetGetFoo = &v
}

func (x *M2) Set_GetFoo(v int32) {
	x.GetFoo_ = &v
}

func (x *M2) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M2) HasGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetFoo != nil
}

func (x *M2) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetFoo_ != nil
}

func (x *M2) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M2) ClearGetGetFoo() {
	x.GetGetFoo = nil
}

func (x *M2) Clear_GetFoo() {
	x.GetFoo_ = nil
}

func (x *M2) Clear_Foo() {
	x.Foo = nil
}

type M2_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Old Scheme:
	// initial name in Go     | Clashes with field | type | final name
	// GetGetFoo              | -                  | -    | GetGetFoo
	// GetFoo                 | get_get_foo        | 2    | GetFoo_
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | -                  | -    | GetGetGetFoo
	GetGetFoo *int32
	GetFoo    *int32
	Foo       *int32
}

func (b0 M2_builder) Build() *M2 {
	m0 := &M2{}
	b, x := &b0, m0
	_, _ = b, x
	x.GetGetFoo = b.GetGetFoo
	x.GetFoo_ = b.GetFoo
	x.Foo = b.Foo
	return m0
}

type M3 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Old Scheme:
	// initial name in Go     | Clashes with field | type | final name
	// GetFoo                 | -                  | -    | GetFoo
	// GetGetFoo              | get_foo            | 1    | GetGetFoo_
	// Foo                    | get_foo            | 2    | Foo_
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | -                  | -    | GetGetGetFoo
	GetFoo        *int32 `protobuf:"varint,2,opt,name=get_foo,json=getFoo" json:"get_foo,omitempty"`
	GetGetFoo_    *int32 `protobuf:"varint,3,opt,name=get_get_foo,json=getGetFoo" json:"get_get_foo,omitempty"`
	Foo_          *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M3) Reset() {
	*x = M3{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M3) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M3) ProtoMessage() {}

func (x *M3) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M3) Get_GetFoo() int32 {
	if x != nil && x.GetFoo != nil {
		return *x.GetFoo
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M3) GetGetFoo() int32 {
	return x.Get_GetFoo()
}

func (x *M3) GetGetGetFoo() int32 {
	if x != nil && x.GetGetFoo_ != nil {
		return *x.GetGetFoo_
	}
	return 0
}

// Deprecated: Use GetGetGetFoo instead.
func (x *M3) GetGetGetFoo_() int32 {
	return x.GetGetGetFoo()
}

func (x *M3) Get_Foo() int32 {
	if x != nil && x.Foo_ != nil {
		return *x.Foo_
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M3) GetFoo_() int32 {
	return x.Get_Foo()
}

func (x *M3) Set_GetFoo(v int32) {
	x.GetFoo = &v
}

func (x *M3) SetGetGetFoo(v int32) {
	x.GetGetFoo_ = &v
}

func (x *M3) Set_Foo(v int32) {
	x.Foo_ = &v
}

func (x *M3) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetFoo != nil
}

func (x *M3) HasGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetFoo_ != nil
}

func (x *M3) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo_ != nil
}

func (x *M3) Clear_GetFoo() {
	x.GetFoo = nil
}

func (x *M3) ClearGetGetFoo() {
	x.GetGetFoo_ = nil
}

func (x *M3) Clear_Foo() {
	x.Foo_ = nil
}

type M3_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Old Scheme:
	// initial name in Go     | Clashes with field | type | final name
	// GetFoo                 | -                  | -    | GetFoo
	// GetGetFoo              | get_foo            | 1    | GetGetFoo_
	// Foo                    | get_foo            | 2    | Foo_
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | -                  | -    | GetGetGetFoo
	GetFoo    *int32
	GetGetFoo *int32
	Foo       *int32
}

func (b0 M3_builder) Build() *M3 {
	m0 := &M3{}
	b, x := &b0, m0
	_, _ = b, x
	x.GetFoo = b.GetFoo
	x.GetGetFoo_ = b.GetGetFoo
	x.Foo_ = b.Foo
	return m0
}

type M4 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Old Scheme:
	// initial name in Go     | Clashes with field | type | final name
	// GetFoo                 | -                  | -    | GetFoo
	// GetGetFoo              | get_foo            | 1    | GetGetFoo_
	//
	//	GetGetGetFoo          | -                  | -    | GetGetGetFoo
	//	                      |                    |      |
	//
	// Foo                    | get_foo            | 2    | Foo_
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetGetFoo           | -                  | -    | GetGetGetGetFoo
	GetFoo *int32 `protobuf:"varint,2,opt,name=get_foo,json=getFoo" json:"get_foo,omitempty"`
	// Types that are valid to be assigned to GetGetFoo_:
	//
	//	*M4_GetGetGetFoo
	GetGetFoo_    isM4_GetGetFoo_ `protobuf_oneof:"get_get_foo"`
	Foo_          *int32          `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M4) Reset() {
	*x = M4{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M4) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M4) ProtoMessage() {}

func (x *M4) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M4) Get_GetFoo() int32 {
	if x != nil && x.GetFoo != nil {
		return *x.GetFoo
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M4) GetGetFoo() int32 {
	return x.Get_GetFoo()
}

func (x *M4) GetGetGetFoo_() isM4_GetGetFoo_ {
	if x != nil {
		return x.GetGetFoo_
	}
	return nil
}

func (x *M4) GetGetGetGetFoo() int32 {
	if x != nil {
		if x, ok := x.GetGetFoo_.(*M4_GetGetGetFoo); ok {
			return x.GetGetGetFoo
		}
	}
	return 0
}

func (x *M4) Get_Foo() int32 {
	if x != nil && x.Foo_ != nil {
		return *x.Foo_
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M4) GetFoo_() int32 {
	return x.Get_Foo()
}

func (x *M4) Set_GetFoo(v int32) {
	x.GetFoo = &v
}

func (x *M4) SetGetGetGetFoo(v int32) {
	x.GetGetFoo_ = &M4_GetGetGetFoo{v}
}

func (x *M4) Set_Foo(v int32) {
	x.Foo_ = &v
}

func (x *M4) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetFoo != nil
}

func (x *M4) HasGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetFoo_ != nil
}

func (x *M4) HasGetGetGetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.GetGetFoo_.(*M4_GetGetGetFoo)
	return ok
}

func (x *M4) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo_ != nil
}

func (x *M4) Clear_GetFoo() {
	x.GetFoo = nil
}

func (x *M4) ClearGetGetFoo() {
	x.GetGetFoo_ = nil
}

func (x *M4) ClearGetGetGetFoo() {
	if _, ok := x.GetGetFoo_.(*M4_GetGetGetFoo); ok {
		x.GetGetFoo_ = nil
	}
}

func (x *M4) Clear_Foo() {
	x.Foo_ = nil
}

const M4_GetGetFoo__not_set_case case_M4_GetGetFoo_ = 0
const M4_GetGetGetFoo_case case_M4_GetGetFoo_ = 3

func (x *M4) WhichGetGetFoo() case_M4_GetGetFoo_ {
	if x == nil {
		return M4_GetGetFoo__not_set_case
	}
	switch x.GetGetFoo_.(type) {
	case *M4_GetGetGetFoo:
		return M4_GetGetGetFoo_case
	default:
		return M4_GetGetFoo__not_set_case
	}
}

type M4_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Old Scheme:
	// initial name in Go     | Clashes with field | type | final name
	// GetFoo                 | -                  | -    | GetFoo
	// GetGetFoo              | get_foo            | 1    | GetGetFoo_
	//
	//	GetGetGetFoo          | -                  | -    | GetGetGetFoo
	//	                      |                    |      |
	//
	// Foo                    | get_foo            | 2    | Foo_
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetGetFoo           | -                  | -    | GetGetGetGetFoo
	GetFoo *int32
	// Fields of oneof GetGetFoo_:
	GetGetGetFoo *int32
	// -- end of GetGetFoo_
	Foo *int32
}

func (b0 M4_builder) Build() *M4 {
	m0 := &M4{}
	b, x := &b0, m0
	_, _ = b, x
	x.GetFoo = b.GetFoo
	if b.GetGetGetFoo != nil {
		x.GetGetFoo_ = &M4_GetGetGetFoo{*b.GetGetGetFoo}
	}
	x.Foo_ = b.Foo
	return m0
}

type case_M4_GetGetFoo_ protoreflect.FieldNumber

func (x case_M4_GetGetFoo_) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[3].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM4_GetGetFoo_ interface {
	isM4_GetGetFoo_()
}

type M4_GetGetGetFoo struct {
	GetGetGetFoo int32 `protobuf:"varint,3,opt,name=get_get_get_foo,json=getGetGetFoo,oneof"`
}

func (*M4_GetGetGetFoo) isM4_GetGetFoo_() {}

type M5 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Old Scheme:
	// Note evaluation order - get_get_foo before get_get_get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetFoo                 | -                  | -    | GetFoo
	// GetGetGetFoo           | -                  | -    | GetGetGetFoo
	//
	//	GetGetFoo             | get_foo            | 1    | GetGetFoo_
	//	                      |                    |      |
	//
	// Foo                    | get_foo            | 2    | Foo_
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | get_get_get_foo    | G    | Get_GetGetFoo
	GetFoo *int32 `protobuf:"varint,2,opt,name=get_foo,json=getFoo" json:"get_foo,omitempty"`
	// Types that are valid to be assigned to GetGetGetFoo:
	//
	//	*M5_GetGetFoo_
	GetGetGetFoo  isM5_GetGetGetFoo `protobuf_oneof:"get_get_get_foo"`
	Foo_          *int32            `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M5) Reset() {
	*x = M5{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M5) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M5) ProtoMessage() {}

func (x *M5) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M5) Get_GetFoo() int32 {
	if x != nil && x.GetFoo != nil {
		return *x.GetFoo
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M5) GetGetFoo() int32 {
	return x.Get_GetFoo()
}

func (x *M5) GetGetGetGetFoo() isM5_GetGetGetFoo {
	if x != nil {
		return x.GetGetGetFoo
	}
	return nil
}

func (x *M5) Get_GetGetFoo() int32 {
	if x != nil {
		if x, ok := x.GetGetGetFoo.(*M5_GetGetFoo_); ok {
			return x.GetGetFoo_
		}
	}
	return 0
}

// Deprecated: Use Get_GetGetFoo instead.
func (x *M5) GetGetGetFoo_() int32 {
	return x.Get_GetGetFoo()
}

func (x *M5) Get_Foo() int32 {
	if x != nil && x.Foo_ != nil {
		return *x.Foo_
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M5) GetFoo_() int32 {
	return x.Get_Foo()
}

func (x *M5) Set_GetFoo(v int32) {
	x.GetFoo = &v
}

func (x *M5) Set_GetGetFoo(v int32) {
	x.GetGetGetFoo = &M5_GetGetFoo_{v}
}

func (x *M5) Set_Foo(v int32) {
	x.Foo_ = &v
}

func (x *M5) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetFoo != nil
}

func (x *M5) HasGetGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetGetFoo != nil
}

func (x *M5) Has_GetGetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.GetGetGetFoo.(*M5_GetGetFoo_)
	return ok
}

func (x *M5) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo_ != nil
}

func (x *M5) Clear_GetFoo() {
	x.GetFoo = nil
}

func (x *M5) ClearGetGetGetFoo() {
	x.GetGetGetFoo = nil
}

func (x *M5) Clear_GetGetFoo() {
	if _, ok := x.GetGetGetFoo.(*M5_GetGetFoo_); ok {
		x.GetGetGetFoo = nil
	}
}

func (x *M5) Clear_Foo() {
	x.Foo_ = nil
}

const M5_GetGetGetFoo_not_set_case case_M5_GetGetGetFoo = 0
const M5_GetGetFoo__case case_M5_GetGetGetFoo = 3

func (x *M5) WhichGetGetGetFoo() case_M5_GetGetGetFoo {
	if x == nil {
		return M5_GetGetGetFoo_not_set_case
	}
	switch x.GetGetGetFoo.(type) {
	case *M5_GetGetFoo_:
		return M5_GetGetFoo__case
	default:
		return M5_GetGetGetFoo_not_set_case
	}
}

type M5_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Old Scheme:
	// Note evaluation order - get_get_foo before get_get_get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetFoo                 | -                  | -    | GetFoo
	// GetGetGetFoo           | -                  | -    | GetGetGetFoo
	//
	//	GetGetFoo             | get_foo            | 1    | GetGetFoo_
	//	                      |                    |      |
	//
	// Foo                    | get_foo            | 2    | Foo_
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | get_get_get_foo    | G    | Get_GetGetFoo
	GetFoo *int32
	// Fields of oneof GetGetGetFoo:
	GetGetFoo *int32
	// -- end of GetGetGetFoo
	Foo *int32
}

func (b0 M5_builder) Build() *M5 {
	m0 := &M5{}
	b, x := &b0, m0
	_, _ = b, x
	x.GetFoo = b.GetFoo
	if b.GetGetFoo != nil {
		x.GetGetGetFoo = &M5_GetGetFoo_{*b.GetGetFoo}
	}
	x.Foo_ = b.Foo
	return m0
}

type case_M5_GetGetGetFoo protoreflect.FieldNumber

func (x case_M5_GetGetGetFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[4].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM5_GetGetGetFoo interface {
	isM5_GetGetGetFoo()
}

type M5_GetGetFoo_ struct {
	GetGetFoo_ int32 `protobuf:"varint,3,opt,name=get_get_foo,json=getGetFoo,oneof"`
}

func (*M5_GetGetFoo_) isM5_GetGetGetFoo() {}

type M6 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Note evaluation order - get_get_get_foo before get_get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetGetFoo              | -                  | -    | GetGetFoo
	//
	//	GetGetGetFoo          | -                  | -    | GetGetGetFoo
	//	                      |                    |      |
	//
	// GetFoo                 | get_get_foo        | 2    | GetFoo_
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetGetFoo           | -                  | -    | GetGetGetGetFoo
	//
	// Types that are valid to be assigned to GetGetFoo:
	//
	//	*M6_GetGetGetFoo
	GetGetFoo     isM6_GetGetFoo `protobuf_oneof:"get_get_foo"`
	GetFoo_       *int32         `protobuf:"varint,2,opt,name=get_foo,json=getFoo" json:"get_foo,omitempty"`
	Foo           *int32         `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M6) Reset() {
	*x = M6{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M6) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M6) ProtoMessage() {}

func (x *M6) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M6) GetGetGetFoo() isM6_GetGetFoo {
	if x != nil {
		return x.GetGetFoo
	}
	return nil
}

func (x *M6) GetGetGetGetFoo() int32 {
	if x != nil {
		if x, ok := x.GetGetFoo.(*M6_GetGetGetFoo); ok {
			return x.GetGetGetFoo
		}
	}
	return 0
}

func (x *M6) Get_GetFoo() int32 {
	if x != nil && x.GetFoo_ != nil {
		return *x.GetFoo_
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M6) GetGetFoo_() int32 {
	return x.Get_GetFoo()
}

func (x *M6) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M6) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M6) SetGetGetGetFoo(v int32) {
	x.GetGetFoo = &M6_GetGetGetFoo{v}
}

func (x *M6) Set_GetFoo(v int32) {
	x.GetFoo_ = &v
}

func (x *M6) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M6) HasGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetFoo != nil
}

func (x *M6) HasGetGetGetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.GetGetFoo.(*M6_GetGetGetFoo)
	return ok
}

func (x *M6) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetFoo_ != nil
}

func (x *M6) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M6) ClearGetGetFoo() {
	x.GetGetFoo = nil
}

func (x *M6) ClearGetGetGetFoo() {
	if _, ok := x.GetGetFoo.(*M6_GetGetGetFoo); ok {
		x.GetGetFoo = nil
	}
}

func (x *M6) Clear_GetFoo() {
	x.GetFoo_ = nil
}

func (x *M6) Clear_Foo() {
	x.Foo = nil
}

const M6_GetGetFoo_not_set_case case_M6_GetGetFoo = 0
const M6_GetGetGetFoo_case case_M6_GetGetFoo = 3

func (x *M6) WhichGetGetFoo() case_M6_GetGetFoo {
	if x == nil {
		return M6_GetGetFoo_not_set_case
	}
	switch x.GetGetFoo.(type) {
	case *M6_GetGetGetFoo:
		return M6_GetGetGetFoo_case
	default:
		return M6_GetGetFoo_not_set_case
	}
}

type M6_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Note evaluation order - get_get_get_foo before get_get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetGetFoo              | -                  | -    | GetGetFoo
	//  GetGetGetFoo          | -                  | -    | GetGetGetFoo
	//                        |                    |      |
	// GetFoo                 | get_get_foo        | 2    | GetFoo_
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetGetFoo           | -                  | -    | GetGetGetGetFoo

	// Fields of oneof GetGetFoo:
	GetGetGetFoo *int32
	// -- end of GetGetFoo
	GetFoo *int32
	Foo    *int32
}

func (b0 M6_builder) Build() *M6 {
	m0 := &M6{}
	b, x := &b0, m0
	_, _ = b, x
	if b.GetGetGetFoo != nil {
		x.GetGetFoo = &M6_GetGetGetFoo{*b.GetGetGetFoo}
	}
	x.GetFoo_ = b.GetFoo
	x.Foo = b.Foo
	return m0
}

type case_M6_GetGetFoo protoreflect.FieldNumber

func (x case_M6_GetGetFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[5].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM6_GetGetFoo interface {
	isM6_GetGetFoo()
}

type M6_GetGetGetFoo struct {
	GetGetGetFoo int32 `protobuf:"varint,3,opt,name=get_get_get_foo,json=getGetGetFoo,oneof"`
}

func (*M6_GetGetGetFoo) isM6_GetGetFoo() {}

type M7 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Note evaluation order - bar before get_get_foo, then get_get_get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetGetFoo              | -                  | -    | GetGetFoo
	//
	//	Bar                   | -                  | -    | Bar
	//	GetFoo                | foo                | 1    | GetFoo_
	//	                      |                    |      |
	//
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// Bar                    | -                  | -    | GetBar
	//
	// Types that are valid to be assigned to GetGetFoo:
	//
	//	*M7_Bar
	//	*M7_GetFoo_
	GetGetFoo     isM7_GetGetFoo `protobuf_oneof:"get_get_foo"`
	Foo           *int32         `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M7) Reset() {
	*x = M7{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M7) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M7) ProtoMessage() {}

func (x *M7) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M7) GetGetGetFoo() isM7_GetGetFoo {
	if x != nil {
		return x.GetGetFoo
	}
	return nil
}

func (x *M7) GetBar() bool {
	if x != nil {
		if x, ok := x.GetGetFoo.(*M7_Bar); ok {
			return x.Bar
		}
	}
	return false
}

func (x *M7) Get_GetFoo() int32 {
	if x != nil {
		if x, ok := x.GetGetFoo.(*M7_GetFoo_); ok {
			return x.GetFoo_
		}
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M7) GetGetFoo_() int32 {
	return x.Get_GetFoo()
}

func (x *M7) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M7) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M7) SetBar(v bool) {
	x.GetGetFoo = &M7_Bar{v}
}

func (x *M7) Set_GetFoo(v int32) {
	x.GetGetFoo = &M7_GetFoo_{v}
}

func (x *M7) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M7) HasGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetFoo != nil
}

func (x *M7) HasBar() bool {
	if x == nil {
		return false
	}
	_, ok := x.GetGetFoo.(*M7_Bar)
	return ok
}

func (x *M7) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.GetGetFoo.(*M7_GetFoo_)
	return ok
}

func (x *M7) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M7) ClearGetGetFoo() {
	x.GetGetFoo = nil
}

func (x *M7) ClearBar() {
	if _, ok := x.GetGetFoo.(*M7_Bar); ok {
		x.GetGetFoo = nil
	}
}

func (x *M7) Clear_GetFoo() {
	if _, ok := x.GetGetFoo.(*M7_GetFoo_); ok {
		x.GetGetFoo = nil
	}
}

func (x *M7) Clear_Foo() {
	x.Foo = nil
}

const M7_GetGetFoo_not_set_case case_M7_GetGetFoo = 0
const M7_Bar_case case_M7_GetGetFoo = 4
const M7_GetFoo__case case_M7_GetGetFoo = 3

func (x *M7) WhichGetGetFoo() case_M7_GetGetFoo {
	if x == nil {
		return M7_GetGetFoo_not_set_case
	}
	switch x.GetGetFoo.(type) {
	case *M7_Bar:
		return M7_Bar_case
	case *M7_GetFoo_:
		return M7_GetFoo__case
	default:
		return M7_GetGetFoo_not_set_case
	}
}

type M7_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Note evaluation order - bar before get_get_foo, then get_get_get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetGetFoo              | -                  | -    | GetGetFoo
	//  Bar                   | -                  | -    | Bar
	//  GetFoo                | foo                | 1    | GetFoo_
	//                        |                    |      |
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// Bar                    | -                  | -    | GetBar

	// Fields of oneof GetGetFoo:
	Bar    *bool
	GetFoo *int32
	// -- end of GetGetFoo
	Foo *int32
}

func (b0 M7_builder) Build() *M7 {
	m0 := &M7{}
	b, x := &b0, m0
	_, _ = b, x
	if b.Bar != nil {
		x.GetGetFoo = &M7_Bar{*b.Bar}
	}
	if b.GetFoo != nil {
		x.GetGetFoo = &M7_GetFoo_{*b.GetFoo}
	}
	x.Foo = b.Foo
	return m0
}

type case_M7_GetGetFoo protoreflect.FieldNumber

func (x case_M7_GetGetFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[6].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM7_GetGetFoo interface {
	isM7_GetGetFoo()
}

type M7_Bar struct {
	Bar bool `protobuf:"varint,4,opt,name=bar,oneof"`
}

type M7_GetFoo_ struct {
	GetFoo_ int32 `protobuf:"varint,3,opt,name=get_foo,json=getFoo,oneof"`
}

func (*M7_Bar) isM7_GetGetFoo() {}

func (*M7_GetFoo_) isM7_GetGetFoo() {}

type M8 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Note evaluation order - get_get_foo before get_get_get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetGetGetFoo           | get_get_foo        | 1    | GetGetGetFoo_
	//
	//	GetGetFoo             | -                  | -    | GetGetFoo
	//	                      |                    |      |
	//
	// GetFoo                 | get_get_foo        | 2    | GetFoo_
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | get_get_get_foo    | G    | Get_GetGetFoo
	//
	// Types that are valid to be assigned to GetGetGetFoo_:
	//
	//	*M8_GetGetFoo
	GetGetGetFoo_ isM8_GetGetGetFoo_ `protobuf_oneof:"get_get_get_foo"`
	GetFoo_       *int32             `protobuf:"varint,2,opt,name=get_foo,json=getFoo" json:"get_foo,omitempty"`
	Foo           *int32             `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M8) Reset() {
	*x = M8{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M8) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M8) ProtoMessage() {}

func (x *M8) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M8) GetGetGetGetFoo_() isM8_GetGetGetFoo_ {
	if x != nil {
		return x.GetGetGetFoo_
	}
	return nil
}

func (x *M8) Get_GetGetFoo() int32 {
	if x != nil {
		if x, ok := x.GetGetGetFoo_.(*M8_GetGetFoo); ok {
			return x.GetGetFoo
		}
	}
	return 0
}

// Deprecated: Use Get_GetGetFoo instead.
func (x *M8) GetGetGetFoo() int32 {
	return x.Get_GetGetFoo()
}

func (x *M8) Get_GetFoo() int32 {
	if x != nil && x.GetFoo_ != nil {
		return *x.GetFoo_
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M8) GetGetFoo_() int32 {
	return x.Get_GetFoo()
}

func (x *M8) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M8) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M8) Set_GetGetFoo(v int32) {
	x.GetGetGetFoo_ = &M8_GetGetFoo{v}
}

func (x *M8) Set_GetFoo(v int32) {
	x.GetFoo_ = &v
}

func (x *M8) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M8) HasGetGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetGetFoo_ != nil
}

func (x *M8) Has_GetGetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.GetGetGetFoo_.(*M8_GetGetFoo)
	return ok
}

func (x *M8) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetFoo_ != nil
}

func (x *M8) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M8) ClearGetGetGetFoo() {
	x.GetGetGetFoo_ = nil
}

func (x *M8) Clear_GetGetFoo() {
	if _, ok := x.GetGetGetFoo_.(*M8_GetGetFoo); ok {
		x.GetGetGetFoo_ = nil
	}
}

func (x *M8) Clear_GetFoo() {
	x.GetFoo_ = nil
}

func (x *M8) Clear_Foo() {
	x.Foo = nil
}

const M8_GetGetGetFoo__not_set_case case_M8_GetGetGetFoo_ = 0
const M8_GetGetFoo_case case_M8_GetGetGetFoo_ = 3

func (x *M8) WhichGetGetGetFoo() case_M8_GetGetGetFoo_ {
	if x == nil {
		return M8_GetGetGetFoo__not_set_case
	}
	switch x.GetGetGetFoo_.(type) {
	case *M8_GetGetFoo:
		return M8_GetGetFoo_case
	default:
		return M8_GetGetGetFoo__not_set_case
	}
}

type M8_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Note evaluation order - get_get_foo before get_get_get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetGetGetFoo           | get_get_foo        | 1    | GetGetGetFoo_
	//  GetGetFoo             | -                  | -    | GetGetFoo
	//                        |                    |      |
	// GetFoo                 | get_get_foo        | 2    | GetFoo_
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | get_get_get_foo    | G    | Get_GetGetFoo

	// Fields of oneof GetGetGetFoo_:
	GetGetFoo *int32
	// -- end of GetGetGetFoo_
	GetFoo *int32
	Foo    *int32
}

func (b0 M8_builder) Build() *M8 {
	m0 := &M8{}
	b, x := &b0, m0
	_, _ = b, x
	if b.GetGetFoo != nil {
		x.GetGetGetFoo_ = &M8_GetGetFoo{*b.GetGetFoo}
	}
	x.GetFoo_ = b.GetFoo
	x.Foo = b.Foo
	return m0
}

type case_M8_GetGetGetFoo_ protoreflect.FieldNumber

func (x case_M8_GetGetGetFoo_) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[7].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM8_GetGetGetFoo_ interface {
	isM8_GetGetGetFoo_()
}

type M8_GetGetFoo struct {
	GetGetFoo int32 `protobuf:"varint,3,opt,name=get_get_foo,json=getGetFoo,oneof"`
}

func (*M8_GetGetFoo) isM8_GetGetGetFoo_() {}

type M9 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Note evaluation order - get_get_foo before get_get_get_foo, then get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetGetGetFoo           | get_get_foo        | 1    | GetGetGetFoo_
	//
	//	GetGetFoo             | -                  | -    | GetGetFoo
	//	GetFoo                | get_get_foo        | 2    | GetFoo_
	//	                      |                    |      |
	//
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | get_get_get_foo    | G    | Get_GetGetFoo
	//
	// Types that are valid to be assigned to GetGetGetFoo_:
	//
	//	*M9_GetGetFoo
	//	*M9_GetFoo_
	GetGetGetFoo_ isM9_GetGetGetFoo_ `protobuf_oneof:"get_get_get_foo"`
	Foo           *int32             `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M9) Reset() {
	*x = M9{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M9) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M9) ProtoMessage() {}

func (x *M9) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M9) GetGetGetGetFoo_() isM9_GetGetGetFoo_ {
	if x != nil {
		return x.GetGetGetFoo_
	}
	return nil
}

func (x *M9) Get_GetGetFoo() int32 {
	if x != nil {
		if x, ok := x.GetGetGetFoo_.(*M9_GetGetFoo); ok {
			return x.GetGetFoo
		}
	}
	return 0
}

// Deprecated: Use Get_GetGetFoo instead.
func (x *M9) GetGetGetFoo() int32 {
	return x.Get_GetGetFoo()
}

func (x *M9) Get_GetFoo() int32 {
	if x != nil {
		if x, ok := x.GetGetGetFoo_.(*M9_GetFoo_); ok {
			return x.GetFoo_
		}
	}
	return 0
}

// Deprecated: Use Get_GetFoo instead.
func (x *M9) GetGetFoo_() int32 {
	return x.Get_GetFoo()
}

func (x *M9) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M9) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M9) Set_GetGetFoo(v int32) {
	x.GetGetGetFoo_ = &M9_GetGetFoo{v}
}

func (x *M9) Set_GetFoo(v int32) {
	x.GetGetGetFoo_ = &M9_GetFoo_{v}
}

func (x *M9) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M9) HasGetGetGetFoo() bool {
	if x == nil {
		return false
	}
	return x.GetGetGetFoo_ != nil
}

func (x *M9) Has_GetGetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.GetGetGetFoo_.(*M9_GetGetFoo)
	return ok
}

func (x *M9) Has_GetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.GetGetGetFoo_.(*M9_GetFoo_)
	return ok
}

func (x *M9) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M9) ClearGetGetGetFoo() {
	x.GetGetGetFoo_ = nil
}

func (x *M9) Clear_GetGetFoo() {
	if _, ok := x.GetGetGetFoo_.(*M9_GetGetFoo); ok {
		x.GetGetGetFoo_ = nil
	}
}

func (x *M9) Clear_GetFoo() {
	if _, ok := x.GetGetGetFoo_.(*M9_GetFoo_); ok {
		x.GetGetGetFoo_ = nil
	}
}

func (x *M9) Clear_Foo() {
	x.Foo = nil
}

const M9_GetGetGetFoo__not_set_case case_M9_GetGetGetFoo_ = 0
const M9_GetGetFoo_case case_M9_GetGetGetFoo_ = 3
const M9_GetFoo__case case_M9_GetGetGetFoo_ = 2

func (x *M9) WhichGetGetGetFoo() case_M9_GetGetGetFoo_ {
	if x == nil {
		return M9_GetGetGetFoo__not_set_case
	}
	switch x.GetGetGetFoo_.(type) {
	case *M9_GetGetFoo:
		return M9_GetGetFoo_case
	case *M9_GetFoo_:
		return M9_GetFoo__case
	default:
		return M9_GetGetGetFoo__not_set_case
	}
}

type M9_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Note evaluation order - get_get_foo before get_get_get_foo, then get_foo
	// initial name in Go     | Clashes with field | type | final name
	// GetGetGetFoo           | get_get_foo        | 1    | GetGetGetFoo_
	//  GetGetFoo             | -                  | -    | GetGetFoo
	//  GetFoo                | get_get_foo        | 2    | GetFoo_
	//                        |                    |      |
	// Foo                    | -                  | -    | Foo
	// New Scheme:
	// initial name in Go     | Clashes with field | type | Getter name
	// Foo                    | get_foo            | G    | Get_Foo
	// GetFoo                 | get_get_foo        | G    | Get_GetFoo
	// GetGetFoo              | get_get_get_foo    | G    | Get_GetGetFoo

	// Fields of oneof GetGetGetFoo_:
	GetGetFoo *int32
	GetFoo    *int32
	// -- end of GetGetGetFoo_
	Foo *int32
}

func (b0 M9_builder) Build() *M9 {
	m0 := &M9{}
	b, x := &b0, m0
	_, _ = b, x
	if b.GetGetFoo != nil {
		x.GetGetGetFoo_ = &M9_GetGetFoo{*b.GetGetFoo}
	}
	if b.GetFoo != nil {
		x.GetGetGetFoo_ = &M9_GetFoo_{*b.GetFoo}
	}
	x.Foo = b.Foo
	return m0
}

type case_M9_GetGetGetFoo_ protoreflect.FieldNumber

func (x case_M9_GetGetGetFoo_) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[8].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM9_GetGetGetFoo_ interface {
	isM9_GetGetGetFoo_()
}

type M9_GetGetFoo struct {
	GetGetFoo int32 `protobuf:"varint,3,opt,name=get_get_foo,json=getGetFoo,oneof"`
}

type M9_GetFoo_ struct {
	GetFoo_ int32 `protobuf:"varint,2,opt,name=get_foo,json=getFoo,oneof"`
}

func (*M9_GetGetFoo) isM9_GetGetGetFoo_() {}

func (*M9_GetFoo_) isM9_GetGetGetFoo_() {}

type M10 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Set Clashes - no concerns with get-mangling as legacy open struct
	// does not have setters except for weak fields:
	// initial name in Go     | Clashes with field | Setter name
	// Foo                    | set_foo            | Set_Foo
	// SetFoo                 | -                  | SetSetFoo
	Foo           *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	SetFoo        *int32 `protobuf:"varint,2,opt,name=set_foo,json=setFoo" json:"set_foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M10) Reset() {
	*x = M10{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M10) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M10) ProtoMessage() {}

func (x *M10) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M10) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M10) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M10) GetSetFoo() int32 {
	if x != nil && x.SetFoo != nil {
		return *x.SetFoo
	}
	return 0
}

func (x *M10) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M10) SetSetFoo(v int32) {
	x.SetFoo = &v
}

func (x *M10) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M10) HasSetFoo() bool {
	if x == nil {
		return false
	}
	return x.SetFoo != nil
}

func (x *M10) Clear_Foo() {
	x.Foo = nil
}

func (x *M10) ClearSetFoo() {
	x.SetFoo = nil
}

type M10_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Set Clashes - no concerns with get-mangling as legacy open struct
	// does not have setters except for weak fields:
	// initial name in Go     | Clashes with field | Setter name
	// Foo                    | set_foo            | Set_Foo
	// SetFoo                 | -                  | SetSetFoo
	Foo    *int32
	SetFoo *int32
}

func (b0 M10_builder) Build() *M10 {
	m0 := &M10{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	x.SetFoo = b.SetFoo
	return m0
}

type M11 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Set Clashes - no concerns with get-mangling as legacy open struct
	// does not have setters except for weak fields:
	// initial name in Go     | Clashes with field | Setter name
	// Foo                    | set_foo            | Set_Foo
	// SetSetFoo              | -                  | SetSetSetFoo
	Foo *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	// Types that are valid to be assigned to SetFoo:
	//
	//	*M11_SetSetFoo
	SetFoo        isM11_SetFoo `protobuf_oneof:"set_foo"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M11) Reset() {
	*x = M11{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M11) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M11) ProtoMessage() {}

func (x *M11) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M11) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M11) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M11) GetSetFoo() isM11_SetFoo {
	if x != nil {
		return x.SetFoo
	}
	return nil
}

func (x *M11) GetSetSetFoo() int32 {
	if x != nil {
		if x, ok := x.SetFoo.(*M11_SetSetFoo); ok {
			return x.SetSetFoo
		}
	}
	return 0
}

func (x *M11) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M11) SetSetSetFoo(v int32) {
	x.SetFoo = &M11_SetSetFoo{v}
}

func (x *M11) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M11) HasSetFoo() bool {
	if x == nil {
		return false
	}
	return x.SetFoo != nil
}

func (x *M11) HasSetSetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.SetFoo.(*M11_SetSetFoo)
	return ok
}

func (x *M11) Clear_Foo() {
	x.Foo = nil
}

func (x *M11) ClearSetFoo() {
	x.SetFoo = nil
}

func (x *M11) ClearSetSetFoo() {
	if _, ok := x.SetFoo.(*M11_SetSetFoo); ok {
		x.SetFoo = nil
	}
}

const M11_SetFoo_not_set_case case_M11_SetFoo = 0
const M11_SetSetFoo_case case_M11_SetFoo = 2

func (x *M11) WhichSetFoo() case_M11_SetFoo {
	if x == nil {
		return M11_SetFoo_not_set_case
	}
	switch x.SetFoo.(type) {
	case *M11_SetSetFoo:
		return M11_SetSetFoo_case
	default:
		return M11_SetFoo_not_set_case
	}
}

type M11_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Set Clashes - no concerns with get-mangling as legacy open struct
	// does not have setters except for weak fields:
	// initial name in Go     | Clashes with field | Setter name
	// Foo                    | set_foo            | Set_Foo
	// SetSetFoo              | -                  | SetSetSetFoo
	Foo *int32
	// Fields of oneof SetFoo:
	SetSetFoo *int32
	// -- end of SetFoo
}

func (b0 M11_builder) Build() *M11 {
	m0 := &M11{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	if b.SetSetFoo != nil {
		x.SetFoo = &M11_SetSetFoo{*b.SetSetFoo}
	}
	return m0
}

type case_M11_SetFoo protoreflect.FieldNumber

func (x case_M11_SetFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[10].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM11_SetFoo interface {
	isM11_SetFoo()
}

type M11_SetSetFoo struct {
	SetSetFoo int32 `protobuf:"varint,2,opt,name=set_set_foo,json=setSetFoo,oneof"`
}

func (*M11_SetSetFoo) isM11_SetFoo() {}

type M12 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Set Clashes - no concerns with get-mangling as legacy open struct
	// does not have setters except for weak fields:
	// initial name in Go     | Clashes with field | Setter name
	// Foo                    | set_foo            | Set_Foo
	// SetFoo                 | set_set_foo        | Set_SetFoo
	Foo *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	// Types that are valid to be assigned to SetSetFoo:
	//
	//	*M12_SetFoo
	SetSetFoo     isM12_SetSetFoo `protobuf_oneof:"set_set_foo"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M12) Reset() {
	*x = M12{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M12) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M12) ProtoMessage() {}

func (x *M12) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M12) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M12) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M12) GetSetSetFoo() isM12_SetSetFoo {
	if x != nil {
		return x.SetSetFoo
	}
	return nil
}

func (x *M12) Get_SetFoo() int32 {
	if x != nil {
		if x, ok := x.SetSetFoo.(*M12_SetFoo); ok {
			return x.SetFoo
		}
	}
	return 0
}

// Deprecated: Use Get_SetFoo instead.
func (x *M12) GetSetFoo() int32 {
	return x.Get_SetFoo()
}

func (x *M12) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M12) Set_SetFoo(v int32) {
	x.SetSetFoo = &M12_SetFoo{v}
}

func (x *M12) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M12) HasSetSetFoo() bool {
	if x == nil {
		return false
	}
	return x.SetSetFoo != nil
}

func (x *M12) Has_SetFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.SetSetFoo.(*M12_SetFoo)
	return ok
}

func (x *M12) Clear_Foo() {
	x.Foo = nil
}

func (x *M12) ClearSetSetFoo() {
	x.SetSetFoo = nil
}

func (x *M12) Clear_SetFoo() {
	if _, ok := x.SetSetFoo.(*M12_SetFoo); ok {
		x.SetSetFoo = nil
	}
}

const M12_SetSetFoo_not_set_case case_M12_SetSetFoo = 0
const M12_SetFoo_case case_M12_SetSetFoo = 2

func (x *M12) WhichSetSetFoo() case_M12_SetSetFoo {
	if x == nil {
		return M12_SetSetFoo_not_set_case
	}
	switch x.SetSetFoo.(type) {
	case *M12_SetFoo:
		return M12_SetFoo_case
	default:
		return M12_SetSetFoo_not_set_case
	}
}

type M12_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Set Clashes - no concerns with get-mangling as legacy open struct
	// does not have setters except for weak fields:
	// initial name in Go     | Clashes with field | Setter name
	// Foo                    | set_foo            | Set_Foo
	// SetFoo                 | set_set_foo        | Set_SetFoo
	Foo *int32
	// Fields of oneof SetSetFoo:
	SetFoo *int32
	// -- end of SetSetFoo
}

func (b0 M12_builder) Build() *M12 {
	m0 := &M12{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	if b.SetFoo != nil {
		x.SetSetFoo = &M12_SetFoo{*b.SetFoo}
	}
	return m0
}

type case_M12_SetSetFoo protoreflect.FieldNumber

func (x case_M12_SetSetFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[11].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM12_SetSetFoo interface {
	isM12_SetSetFoo()
}

type M12_SetFoo struct {
	SetFoo int32 `protobuf:"varint,2,opt,name=set_foo,json=setFoo,oneof"`
}

func (*M12_SetFoo) isM12_SetSetFoo() {}

type M13 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Has Clashes - no concerns with get-mangling as legacy open struct
	// does not have hassers except for weak fields:
	// initial name in Go     | Clashes with field | Hasser name
	// Foo                    | has_foo            | Has_Foo
	// HasFoo                 | -                  | HasHasFoo
	Foo           *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	HasFoo        *int32 `protobuf:"varint,2,opt,name=has_foo,json=hasFoo" json:"has_foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M13) Reset() {
	*x = M13{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M13) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M13) ProtoMessage() {}

func (x *M13) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M13) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M13) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M13) GetHasFoo() int32 {
	if x != nil && x.HasFoo != nil {
		return *x.HasFoo
	}
	return 0
}

func (x *M13) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M13) SetHasFoo(v int32) {
	x.HasFoo = &v
}

func (x *M13) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M13) HasHasFoo() bool {
	if x == nil {
		return false
	}
	return x.HasFoo != nil
}

func (x *M13) Clear_Foo() {
	x.Foo = nil
}

func (x *M13) ClearHasFoo() {
	x.HasFoo = nil
}

type M13_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Has Clashes - no concerns with get-mangling as legacy open struct
	// does not have hassers except for weak fields:
	// initial name in Go     | Clashes with field | Hasser name
	// Foo                    | has_foo            | Has_Foo
	// HasFoo                 | -                  | HasHasFoo
	Foo    *int32
	HasFoo *int32
}

func (b0 M13_builder) Build() *M13 {
	m0 := &M13{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	x.HasFoo = b.HasFoo
	return m0
}

type M14 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Has Clashes - no concerns with get-mangling as legacy open struct
	// does not have hassers except for weak fields:
	// initial name in Go     | Clashes with field | Hasser name
	// Foo                    | has_foo            | Has_Foo
	// HasFoo                 | has_has_foo        | Has_HasFoo
	// HasHasFoo              | -                  | HasHasHasFoo
	Foo *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	// Types that are valid to be assigned to HasFoo:
	//
	//	*M14_HasHasFoo
	HasFoo        isM14_HasFoo `protobuf_oneof:"has_foo"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M14) Reset() {
	*x = M14{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M14) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M14) ProtoMessage() {}

func (x *M14) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M14) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M14) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M14) GetHasFoo() isM14_HasFoo {
	if x != nil {
		return x.HasFoo
	}
	return nil
}

func (x *M14) GetHasHasFoo() int32 {
	if x != nil {
		if x, ok := x.HasFoo.(*M14_HasHasFoo); ok {
			return x.HasHasFoo
		}
	}
	return 0
}

func (x *M14) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M14) SetHasHasFoo(v int32) {
	x.HasFoo = &M14_HasHasFoo{v}
}

func (x *M14) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M14) Has_HasFoo() bool {
	if x == nil {
		return false
	}
	return x.HasFoo != nil
}

func (x *M14) HasHasHasFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.HasFoo.(*M14_HasHasFoo)
	return ok
}

func (x *M14) Clear_Foo() {
	x.Foo = nil
}

func (x *M14) Clear_HasFoo() {
	x.HasFoo = nil
}

func (x *M14) ClearHasHasFoo() {
	if _, ok := x.HasFoo.(*M14_HasHasFoo); ok {
		x.HasFoo = nil
	}
}

const M14_HasFoo_not_set_case case_M14_HasFoo = 0
const M14_HasHasFoo_case case_M14_HasFoo = 2

func (x *M14) Which_HasFoo() case_M14_HasFoo {
	if x == nil {
		return M14_HasFoo_not_set_case
	}
	switch x.HasFoo.(type) {
	case *M14_HasHasFoo:
		return M14_HasHasFoo_case
	default:
		return M14_HasFoo_not_set_case
	}
}

type M14_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Has Clashes - no concerns with get-mangling as legacy open struct
	// does not have hassers except for weak fields:
	// initial name in Go     | Clashes with field | Hasser name
	// Foo                    | has_foo            | Has_Foo
	// HasFoo                 | has_has_foo        | Has_HasFoo
	// HasHasFoo              | -                  | HasHasHasFoo
	Foo *int32
	// Fields of oneof HasFoo:
	HasHasFoo *int32
	// -- end of HasFoo
}

func (b0 M14_builder) Build() *M14 {
	m0 := &M14{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	if b.HasHasFoo != nil {
		x.HasFoo = &M14_HasHasFoo{*b.HasHasFoo}
	}
	return m0
}

type case_M14_HasFoo protoreflect.FieldNumber

func (x case_M14_HasFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[13].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM14_HasFoo interface {
	isM14_HasFoo()
}

type M14_HasHasFoo struct {
	HasHasFoo int32 `protobuf:"varint,2,opt,name=has_has_foo,json=hasHasFoo,oneof"`
}

func (*M14_HasHasFoo) isM14_HasFoo() {}

type M15 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Has Clashes - no concerns with get-mangling as legacy open struct
	// does not have hassers except for weak fields:
	// initial name in Go     | Clashes with field | Hasser name
	// Foo                    | has_foo            | Has_Foo
	// HasFoo                 | has_has_foo        | Has_HasFoo
	// HasHasFoo              | -                  | HasHasHasFoo
	Foo *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	// Types that are valid to be assigned to HasHasFoo:
	//
	//	*M15_HasFoo
	HasHasFoo     isM15_HasHasFoo `protobuf_oneof:"has_has_foo"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M15) Reset() {
	*x = M15{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M15) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M15) ProtoMessage() {}

func (x *M15) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M15) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M15) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M15) GetHasHasFoo() isM15_HasHasFoo {
	if x != nil {
		return x.HasHasFoo
	}
	return nil
}

func (x *M15) Get_HasFoo() int32 {
	if x != nil {
		if x, ok := x.HasHasFoo.(*M15_HasFoo); ok {
			return x.HasFoo
		}
	}
	return 0
}

// Deprecated: Use Get_HasFoo instead.
func (x *M15) GetHasFoo() int32 {
	return x.Get_HasFoo()
}

func (x *M15) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M15) Set_HasFoo(v int32) {
	x.HasHasFoo = &M15_HasFoo{v}
}

func (x *M15) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M15) HasHasHasFoo() bool {
	if x == nil {
		return false
	}
	return x.HasHasFoo != nil
}

func (x *M15) Has_HasFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.HasHasFoo.(*M15_HasFoo)
	return ok
}

func (x *M15) Clear_Foo() {
	x.Foo = nil
}

func (x *M15) ClearHasHasFoo() {
	x.HasHasFoo = nil
}

func (x *M15) Clear_HasFoo() {
	if _, ok := x.HasHasFoo.(*M15_HasFoo); ok {
		x.HasHasFoo = nil
	}
}

const M15_HasHasFoo_not_set_case case_M15_HasHasFoo = 0
const M15_HasFoo_case case_M15_HasHasFoo = 2

func (x *M15) WhichHasHasFoo() case_M15_HasHasFoo {
	if x == nil {
		return M15_HasHasFoo_not_set_case
	}
	switch x.HasHasFoo.(type) {
	case *M15_HasFoo:
		return M15_HasFoo_case
	default:
		return M15_HasHasFoo_not_set_case
	}
}

type M15_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Has Clashes - no concerns with get-mangling as legacy open struct
	// does not have hassers except for weak fields:
	// initial name in Go     | Clashes with field | Hasser name
	// Foo                    | has_foo            | Has_Foo
	// HasFoo                 | has_has_foo        | Has_HasFoo
	// HasHasFoo              | -                  | HasHasHasFoo
	Foo *int32
	// Fields of oneof HasHasFoo:
	HasFoo *int32
	// -- end of HasHasFoo
}

func (b0 M15_builder) Build() *M15 {
	m0 := &M15{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	if b.HasFoo != nil {
		x.HasHasFoo = &M15_HasFoo{*b.HasFoo}
	}
	return m0
}

type case_M15_HasHasFoo protoreflect.FieldNumber

func (x case_M15_HasHasFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[14].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM15_HasHasFoo interface {
	isM15_HasHasFoo()
}

type M15_HasFoo struct {
	HasFoo int32 `protobuf:"varint,2,opt,name=has_foo,json=hasFoo,oneof"`
}

func (*M15_HasFoo) isM15_HasHasFoo() {}

type M16 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Clear Clashes - no concerns with get-mangling as legacy open
	// struct does not have clearers except for weak fields:
	// initial name in Go     | Clashes with field | Clearer name
	// Foo                    | clear_foo            | Clear_Foo
	// ClearFoo               | -                  | ClearClearFoo
	Foo           *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	ClearFoo      *int32 `protobuf:"varint,2,opt,name=clear_foo,json=clearFoo" json:"clear_foo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M16) Reset() {
	*x = M16{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M16) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M16) ProtoMessage() {}

func (x *M16) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M16) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M16) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M16) GetClearFoo() int32 {
	if x != nil && x.ClearFoo != nil {
		return *x.ClearFoo
	}
	return 0
}

func (x *M16) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M16) SetClearFoo(v int32) {
	x.ClearFoo = &v
}

func (x *M16) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M16) HasClearFoo() bool {
	if x == nil {
		return false
	}
	return x.ClearFoo != nil
}

func (x *M16) Clear_Foo() {
	x.Foo = nil
}

func (x *M16) ClearClearFoo() {
	x.ClearFoo = nil
}

type M16_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Clear Clashes - no concerns with get-mangling as legacy open
	// struct does not have clearers except for weak fields:
	// initial name in Go     | Clashes with field | Clearer name
	// Foo                    | clear_foo            | Clear_Foo
	// ClearFoo               | -                  | ClearClearFoo
	Foo      *int32
	ClearFoo *int32
}

func (b0 M16_builder) Build() *M16 {
	m0 := &M16{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	x.ClearFoo = b.ClearFoo
	return m0
}

type M17 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Clear Clashes - no concerns with get-mangling as legacy open
	// struct does not have clearers except for weak fields:
	// initial name in Go     | Clashes with field | Clearer name
	// Foo                    | clear_foo          | Clear_Foo
	// ClearFoo               | clear_clear_foo    | Clear_ClearFoo
	// ClearClearFoo          | -                  | ClearClearClearFoo
	Foo *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	// Types that are valid to be assigned to ClearFoo:
	//
	//	*M17_ClearClearFoo
	ClearFoo      isM17_ClearFoo `protobuf_oneof:"clear_foo"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M17) Reset() {
	*x = M17{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M17) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M17) ProtoMessage() {}

func (x *M17) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M17) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M17) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M17) GetClearFoo() isM17_ClearFoo {
	if x != nil {
		return x.ClearFoo
	}
	return nil
}

func (x *M17) GetClearClearFoo() int32 {
	if x != nil {
		if x, ok := x.ClearFoo.(*M17_ClearClearFoo); ok {
			return x.ClearClearFoo
		}
	}
	return 0
}

func (x *M17) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M17) SetClearClearFoo(v int32) {
	x.ClearFoo = &M17_ClearClearFoo{v}
}

func (x *M17) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M17) Has_ClearFoo() bool {
	if x == nil {
		return false
	}
	return x.ClearFoo != nil
}

func (x *M17) HasClearClearFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.ClearFoo.(*M17_ClearClearFoo)
	return ok
}

func (x *M17) Clear_Foo() {
	x.Foo = nil
}

func (x *M17) Clear_ClearFoo() {
	x.ClearFoo = nil
}

func (x *M17) ClearClearClearFoo() {
	if _, ok := x.ClearFoo.(*M17_ClearClearFoo); ok {
		x.ClearFoo = nil
	}
}

const M17_ClearFoo_not_set_case case_M17_ClearFoo = 0
const M17_ClearClearFoo_case case_M17_ClearFoo = 2

func (x *M17) Which_ClearFoo() case_M17_ClearFoo {
	if x == nil {
		return M17_ClearFoo_not_set_case
	}
	switch x.ClearFoo.(type) {
	case *M17_ClearClearFoo:
		return M17_ClearClearFoo_case
	default:
		return M17_ClearFoo_not_set_case
	}
}

type M17_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Clear Clashes - no concerns with get-mangling as legacy open
	// struct does not have clearers except for weak fields:
	// initial name in Go     | Clashes with field | Clearer name
	// Foo                    | clear_foo          | Clear_Foo
	// ClearFoo               | clear_clear_foo    | Clear_ClearFoo
	// ClearClearFoo          | -                  | ClearClearClearFoo
	Foo *int32
	// Fields of oneof ClearFoo:
	ClearClearFoo *int32
	// -- end of ClearFoo
}

func (b0 M17_builder) Build() *M17 {
	m0 := &M17{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	if b.ClearClearFoo != nil {
		x.ClearFoo = &M17_ClearClearFoo{*b.ClearClearFoo}
	}
	return m0
}

type case_M17_ClearFoo protoreflect.FieldNumber

func (x case_M17_ClearFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[16].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM17_ClearFoo interface {
	isM17_ClearFoo()
}

type M17_ClearClearFoo struct {
	ClearClearFoo int32 `protobuf:"varint,2,opt,name=clear_clear_foo,json=clearClearFoo,oneof"`
}

func (*M17_ClearClearFoo) isM17_ClearFoo() {}

type M18 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Clear Clashes - no concerns with get-mangling as legacy open
	// struct does not have clearers except for weak fields:
	// initial name in Go     | Clashes with field | Clearer name
	// Foo                    | clear_foo          | Clear_Foo
	// ClearFoo               | clear_clear_foo    | Clear_ClearFoo
	// ClearClearFoo          | -                  | ClearClearClearFoo
	Foo *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	// Types that are valid to be assigned to ClearClearFoo:
	//
	//	*M18_ClearFoo
	ClearClearFoo isM18_ClearClearFoo `protobuf_oneof:"clear_clear_foo"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M18) Reset() {
	*x = M18{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M18) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M18) ProtoMessage() {}

func (x *M18) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M18) Get_Foo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

// Deprecated: Use Get_Foo instead.
func (x *M18) GetFoo() int32 {
	return x.Get_Foo()
}

func (x *M18) GetClearClearFoo() isM18_ClearClearFoo {
	if x != nil {
		return x.ClearClearFoo
	}
	return nil
}

func (x *M18) Get_ClearFoo() int32 {
	if x != nil {
		if x, ok := x.ClearClearFoo.(*M18_ClearFoo); ok {
			return x.ClearFoo
		}
	}
	return 0
}

// Deprecated: Use Get_ClearFoo instead.
func (x *M18) GetClearFoo() int32 {
	return x.Get_ClearFoo()
}

func (x *M18) Set_Foo(v int32) {
	x.Foo = &v
}

func (x *M18) Set_ClearFoo(v int32) {
	x.ClearClearFoo = &M18_ClearFoo{v}
}

func (x *M18) Has_Foo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M18) HasClearClearFoo() bool {
	if x == nil {
		return false
	}
	return x.ClearClearFoo != nil
}

func (x *M18) Has_ClearFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.ClearClearFoo.(*M18_ClearFoo)
	return ok
}

func (x *M18) Clear_Foo() {
	x.Foo = nil
}

func (x *M18) ClearClearClearFoo() {
	x.ClearClearFoo = nil
}

func (x *M18) Clear_ClearFoo() {
	if _, ok := x.ClearClearFoo.(*M18_ClearFoo); ok {
		x.ClearClearFoo = nil
	}
}

const M18_ClearClearFoo_not_set_case case_M18_ClearClearFoo = 0
const M18_ClearFoo_case case_M18_ClearClearFoo = 2

func (x *M18) WhichClearClearFoo() case_M18_ClearClearFoo {
	if x == nil {
		return M18_ClearClearFoo_not_set_case
	}
	switch x.ClearClearFoo.(type) {
	case *M18_ClearFoo:
		return M18_ClearFoo_case
	default:
		return M18_ClearClearFoo_not_set_case
	}
}

type M18_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Clear Clashes - no concerns with get-mangling as legacy open
	// struct does not have clearers except for weak fields:
	// initial name in Go     | Clashes with field | Clearer name
	// Foo                    | clear_foo          | Clear_Foo
	// ClearFoo               | clear_clear_foo    | Clear_ClearFoo
	// ClearClearFoo          | -                  | ClearClearClearFoo
	Foo *int32
	// Fields of oneof ClearClearFoo:
	ClearFoo *int32
	// -- end of ClearClearFoo
}

func (b0 M18_builder) Build() *M18 {
	m0 := &M18{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	if b.ClearFoo != nil {
		x.ClearClearFoo = &M18_ClearFoo{*b.ClearFoo}
	}
	return m0
}

type case_M18_ClearClearFoo protoreflect.FieldNumber

func (x case_M18_ClearClearFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[17].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM18_ClearClearFoo interface {
	isM18_ClearClearFoo()
}

type M18_ClearFoo struct {
	ClearFoo int32 `protobuf:"varint,2,opt,name=clear_foo,json=clearFoo,oneof"`
}

func (*M18_ClearFoo) isM18_ClearClearFoo() {}

type M19 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Which Clashes - no concerns with get-mangling as legacy open
	// struct does not have whichers except for weak fields:
	// initial name in Go     | Clashes with field | Whicher name
	// Foo                    | -                  | -
	// WhichFoo               | -                  | -
	// WhichWhichFoo          | -                  | WhichWhichWhichFoo
	Foo *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	// Types that are valid to be assigned to WhichWhichFoo:
	//
	//	*M19_WhichFoo
	WhichWhichFoo isM19_WhichWhichFoo `protobuf_oneof:"which_which_foo"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M19) Reset() {
	*x = M19{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M19) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M19) ProtoMessage() {}

func (x *M19) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M19) GetFoo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

func (x *M19) GetWhichWhichFoo() isM19_WhichWhichFoo {
	if x != nil {
		return x.WhichWhichFoo
	}
	return nil
}

func (x *M19) GetWhichFoo() int32 {
	if x != nil {
		if x, ok := x.WhichWhichFoo.(*M19_WhichFoo); ok {
			return x.WhichFoo
		}
	}
	return 0
}

func (x *M19) SetFoo(v int32) {
	x.Foo = &v
}

func (x *M19) SetWhichFoo(v int32) {
	x.WhichWhichFoo = &M19_WhichFoo{v}
}

func (x *M19) HasFoo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M19) HasWhichWhichFoo() bool {
	if x == nil {
		return false
	}
	return x.WhichWhichFoo != nil
}

func (x *M19) HasWhichFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.WhichWhichFoo.(*M19_WhichFoo)
	return ok
}

func (x *M19) ClearFoo() {
	x.Foo = nil
}

func (x *M19) ClearWhichWhichFoo() {
	x.WhichWhichFoo = nil
}

func (x *M19) ClearWhichFoo() {
	if _, ok := x.WhichWhichFoo.(*M19_WhichFoo); ok {
		x.WhichWhichFoo = nil
	}
}

const M19_WhichWhichFoo_not_set_case case_M19_WhichWhichFoo = 0
const M19_WhichFoo_case case_M19_WhichWhichFoo = 2

func (x *M19) WhichWhichWhichFoo() case_M19_WhichWhichFoo {
	if x == nil {
		return M19_WhichWhichFoo_not_set_case
	}
	switch x.WhichWhichFoo.(type) {
	case *M19_WhichFoo:
		return M19_WhichFoo_case
	default:
		return M19_WhichWhichFoo_not_set_case
	}
}

type M19_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Which Clashes - no concerns with get-mangling as legacy open
	// struct does not have whichers except for weak fields:
	// initial name in Go     | Clashes with field | Whicher name
	// Foo                    | -                  | -
	// WhichFoo               | -                  | -
	// WhichWhichFoo          | -                  | WhichWhichWhichFoo
	Foo *int32
	// Fields of oneof WhichWhichFoo:
	WhichFoo *int32
	// -- end of WhichWhichFoo
}

func (b0 M19_builder) Build() *M19 {
	m0 := &M19{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	if b.WhichFoo != nil {
		x.WhichWhichFoo = &M19_WhichFoo{*b.WhichFoo}
	}
	return m0
}

type case_M19_WhichWhichFoo protoreflect.FieldNumber

func (x case_M19_WhichWhichFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[18].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM19_WhichWhichFoo interface {
	isM19_WhichWhichFoo()
}

type M19_WhichFoo struct {
	WhichFoo int32 `protobuf:"varint,2,opt,name=which_foo,json=whichFoo,oneof"`
}

func (*M19_WhichFoo) isM19_WhichWhichFoo() {}

type M20 struct {
	state protoimpl.MessageState `protogen:"hybrid.v1"`
	// Which Clashes - no concerns with get-mangling as legacy open
	// struct does not have whichers except for weak fields:
	// initial name in Go     | Clashes with field | Whicher name
	// Foo                    | -                  | -
	// WhichFoo               | which_which_foo    | Which_WhichFoo
	// WhichWhichFoo          | -                  | -
	Foo *int32 `protobuf:"varint,1,opt,name=foo" json:"foo,omitempty"`
	// Types that are valid to be assigned to WhichFoo:
	//
	//	*M20_WhichWhichFoo
	WhichFoo      isM20_WhichFoo `protobuf_oneof:"which_foo"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *M20) Reset() {
	*x = M20{}
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *M20) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*M20) ProtoMessage() {}

func (x *M20) ProtoReflect() protoreflect.Message {
	mi := &file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *M20) GetFoo() int32 {
	if x != nil && x.Foo != nil {
		return *x.Foo
	}
	return 0
}

func (x *M20) GetWhichFoo() isM20_WhichFoo {
	if x != nil {
		return x.WhichFoo
	}
	return nil
}

func (x *M20) GetWhichWhichFoo() int32 {
	if x != nil {
		if x, ok := x.WhichFoo.(*M20_WhichWhichFoo); ok {
			return x.WhichWhichFoo
		}
	}
	return 0
}

func (x *M20) SetFoo(v int32) {
	x.Foo = &v
}

func (x *M20) SetWhichWhichFoo(v int32) {
	x.WhichFoo = &M20_WhichWhichFoo{v}
}

func (x *M20) HasFoo() bool {
	if x == nil {
		return false
	}
	return x.Foo != nil
}

func (x *M20) Has_WhichFoo() bool {
	if x == nil {
		return false
	}
	return x.WhichFoo != nil
}

func (x *M20) HasWhichWhichFoo() bool {
	if x == nil {
		return false
	}
	_, ok := x.WhichFoo.(*M20_WhichWhichFoo)
	return ok
}

func (x *M20) ClearFoo() {
	x.Foo = nil
}

func (x *M20) Clear_WhichFoo() {
	x.WhichFoo = nil
}

func (x *M20) ClearWhichWhichFoo() {
	if _, ok := x.WhichFoo.(*M20_WhichWhichFoo); ok {
		x.WhichFoo = nil
	}
}

const M20_WhichFoo_not_set_case case_M20_WhichFoo = 0
const M20_WhichWhichFoo_case case_M20_WhichFoo = 2

func (x *M20) Which_WhichFoo() case_M20_WhichFoo {
	if x == nil {
		return M20_WhichFoo_not_set_case
	}
	switch x.WhichFoo.(type) {
	case *M20_WhichWhichFoo:
		return M20_WhichWhichFoo_case
	default:
		return M20_WhichFoo_not_set_case
	}
}

type M20_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Which Clashes - no concerns with get-mangling as legacy open
	// struct does not have whichers except for weak fields:
	// initial name in Go     | Clashes with field | Whicher name
	// Foo                    | -                  | -
	// WhichFoo               | which_which_foo    | Which_WhichFoo
	// WhichWhichFoo          | -                  | -
	Foo *int32
	// Fields of oneof WhichFoo:
	WhichWhichFoo *int32
	// -- end of WhichFoo
}

func (b0 M20_builder) Build() *M20 {
	m0 := &M20{}
	b, x := &b0, m0
	_, _ = b, x
	x.Foo = b.Foo
	if b.WhichWhichFoo != nil {
		x.WhichFoo = &M20_WhichWhichFoo{*b.WhichWhichFoo}
	}
	return m0
}

type case_M20_WhichFoo protoreflect.FieldNumber

func (x case_M20_WhichFoo) String() string {
	md := file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[19].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isM20_WhichFoo interface {
	isM20_WhichFoo()
}

type M20_WhichWhichFoo struct {
	WhichWhichFoo int32 `protobuf:"varint,2,opt,name=which_which_foo,json=whichWhichFoo,oneof"`
}

func (*M20_WhichWhichFoo) isM20_WhichFoo() {}

var File_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto protoreflect.FileDescriptor

var file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_rawDesc = []byte{
	0x0a, 0x41, 0x63, 0x6d, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e,
	0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x6e, 0x61, 0x6d,
	0x65, 0x63, 0x6c, 0x61, 0x73, 0x68, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x5f, 0x63, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x12, 0x26, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2e,
	0x67, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65,
	0x63, 0x6c, 0x61, 0x73, 0x68, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x1a, 0x21, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x5f,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4f,
	0x0a, 0x02, 0x4d, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f,
	0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12,
	0x1e, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x65, 0x74, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x22,
	0x4f, 0x0a, 0x02, 0x4d, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74,
	0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x65, 0x74, 0x47,
	0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x10,
	0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f,
	0x22, 0x4f, 0x0a, 0x02, 0x4d, 0x33, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f,
	0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12,
	0x1e, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x65, 0x74, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12,
	0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f,
	0x6f, 0x22, 0x67, 0x0a, 0x02, 0x4d, 0x34, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x66,
	0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f,
	0x12, 0x27, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f,
	0x66, 0x6f, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x65, 0x74,
	0x47, 0x65, 0x74, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x67,
	0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x22, 0x64, 0x0a, 0x02, 0x4d, 0x35,
	0x12, 0x17, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x74,
	0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00,
	0x52, 0x09, 0x67, 0x65, 0x74, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66,
	0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x42, 0x11, 0x0a,
	0x0f, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f,
	0x22, 0x67, 0x0a, 0x02, 0x4d, 0x36, 0x12, 0x27, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65,
	0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48,
	0x00, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x47, 0x65, 0x74, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12,
	0x17, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x67, 0x65,
	0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x22, 0x54, 0x0a, 0x02, 0x4d, 0x37, 0x12,
	0x12, 0x0a, 0x03, 0x62, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03,
	0x62, 0x61, 0x72, 0x12, 0x19, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x10,
	0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f,
	0x42, 0x0d, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x22,
	0x64, 0x0a, 0x02, 0x4d, 0x38, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74,
	0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65,
	0x74, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x66,
	0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f,
	0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66,
	0x6f, 0x6f, 0x42, 0x11, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65,
	0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x22, 0x66, 0x0a, 0x02, 0x4d, 0x39, 0x12, 0x20, 0x0a, 0x0b, 0x67,
	0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x19, 0x0a,
	0x07, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00,
	0x52, 0x06, 0x67, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x42, 0x11, 0x0a, 0x0f, 0x67, 0x65,
	0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x22, 0x30, 0x0a,
	0x03, 0x4d, 0x31, 0x30, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f,
	0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x22,
	0x44, 0x0a, 0x03, 0x4d, 0x31, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x5f,
	0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52,
	0x09, 0x73, 0x65, 0x74, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x42, 0x09, 0x0a, 0x07, 0x73, 0x65,
	0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x22, 0x41, 0x0a, 0x03, 0x4d, 0x31, 0x32, 0x12, 0x10, 0x0a, 0x03,
	0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x19,
	0x0a, 0x07, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48,
	0x00, 0x52, 0x06, 0x73, 0x65, 0x74, 0x46, 0x6f, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x73, 0x65, 0x74,
	0x5f, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x22, 0x30, 0x0a, 0x03, 0x4d, 0x31, 0x33, 0x12,
	0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f,
	0x6f, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x68, 0x61, 0x73, 0x46, 0x6f, 0x6f, 0x22, 0x44, 0x0a, 0x03, 0x4d, 0x31,
	0x34, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
	0x66, 0x6f, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x66,
	0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x09, 0x68, 0x61, 0x73, 0x48,
	0x61, 0x73, 0x46, 0x6f, 0x6f, 0x42, 0x09, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x6f, 0x6f,
	0x22, 0x41, 0x0a, 0x03, 0x4d, 0x31, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x19, 0x0a, 0x07, 0x68, 0x61, 0x73,
	0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x68, 0x61,
	0x73, 0x46, 0x6f, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f,
	0x66, 0x6f, 0x6f, 0x22, 0x34, 0x0a, 0x03, 0x4d, 0x31, 0x36, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f,
	0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x1b, 0x0a, 0x09,
	0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x46, 0x6f, 0x6f, 0x22, 0x4e, 0x0a, 0x03, 0x4d, 0x31, 0x37,
	0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66,
	0x6f, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x6c, 0x65, 0x61,
	0x72, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0d, 0x63,
	0x6c, 0x65, 0x61, 0x72, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x46, 0x6f, 0x6f, 0x42, 0x0b, 0x0a, 0x09,
	0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x6f, 0x6f, 0x22, 0x49, 0x0a, 0x03, 0x4d, 0x31, 0x38,
	0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66,
	0x6f, 0x6f, 0x12, 0x1d, 0x0a, 0x09, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x6f, 0x6f, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x46, 0x6f,
	0x6f, 0x42, 0x11, 0x0a, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72,
	0x5f, 0x66, 0x6f, 0x6f, 0x22, 0x49, 0x0a, 0x03, 0x4d, 0x31, 0x39, 0x12, 0x10, 0x0a, 0x03, 0x66,
	0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x1d, 0x0a,
	0x09, 0x77, 0x68, 0x69, 0x63, 0x68, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x48, 0x00, 0x52, 0x08, 0x77, 0x68, 0x69, 0x63, 0x68, 0x46, 0x6f, 0x6f, 0x42, 0x11, 0x0a, 0x0f,
	0x77, 0x68, 0x69, 0x63, 0x68, 0x5f, 0x77, 0x68, 0x69, 0x63, 0x68, 0x5f, 0x66, 0x6f, 0x6f, 0x22,
	0x4e, 0x0a, 0x03, 0x4d, 0x32, 0x30, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x68, 0x69, 0x63,
	0x68, 0x5f, 0x77, 0x68, 0x69, 0x63, 0x68, 0x5f, 0x66, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x68, 0x69, 0x63, 0x68, 0x57, 0x68, 0x69, 0x63, 0x68, 0x46,
	0x6f, 0x6f, 0x42, 0x0b, 0x0a, 0x09, 0x77, 0x68, 0x69, 0x63, 0x68, 0x5f, 0x66, 0x6f, 0x6f, 0x42,
	0x60, 0x5a, 0x56, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,
	0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x63, 0x6d,
	0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f,
	0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x63, 0x6c, 0x61,
	0x73, 0x68, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61,
	0x73, 0x68, 0x5f, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x92, 0x03, 0x05, 0xd2, 0x3e, 0x02, 0x10,
	0x02, 0x62, 0x08, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x70, 0xe8, 0x07,
}

var file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_goTypes = []any{
	(*M1)(nil),  // 0: net.proto2.go.testdata.nameclashhybrid.M1
	(*M2)(nil),  // 1: net.proto2.go.testdata.nameclashhybrid.M2
	(*M3)(nil),  // 2: net.proto2.go.testdata.nameclashhybrid.M3
	(*M4)(nil),  // 3: net.proto2.go.testdata.nameclashhybrid.M4
	(*M5)(nil),  // 4: net.proto2.go.testdata.nameclashhybrid.M5
	(*M6)(nil),  // 5: net.proto2.go.testdata.nameclashhybrid.M6
	(*M7)(nil),  // 6: net.proto2.go.testdata.nameclashhybrid.M7
	(*M8)(nil),  // 7: net.proto2.go.testdata.nameclashhybrid.M8
	(*M9)(nil),  // 8: net.proto2.go.testdata.nameclashhybrid.M9
	(*M10)(nil), // 9: net.proto2.go.testdata.nameclashhybrid.M10
	(*M11)(nil), // 10: net.proto2.go.testdata.nameclashhybrid.M11
	(*M12)(nil), // 11: net.proto2.go.testdata.nameclashhybrid.M12
	(*M13)(nil), // 12: net.proto2.go.testdata.nameclashhybrid.M13
	(*M14)(nil), // 13: net.proto2.go.testdata.nameclashhybrid.M14
	(*M15)(nil), // 14: net.proto2.go.testdata.nameclashhybrid.M15
	(*M16)(nil), // 15: net.proto2.go.testdata.nameclashhybrid.M16
	(*M17)(nil), // 16: net.proto2.go.testdata.nameclashhybrid.M17
	(*M18)(nil), // 17: net.proto2.go.testdata.nameclashhybrid.M18
	(*M19)(nil), // 18: net.proto2.go.testdata.nameclashhybrid.M19
	(*M20)(nil), // 19: net.proto2.go.testdata.nameclashhybrid.M20
}
var file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_depIdxs = []int32{
	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_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_init() }
func file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_init() {
	if File_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto != nil {
		return
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[3].OneofWrappers = []any{
		(*M4_GetGetGetFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[4].OneofWrappers = []any{
		(*M5_GetGetFoo_)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[5].OneofWrappers = []any{
		(*M6_GetGetGetFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[6].OneofWrappers = []any{
		(*M7_Bar)(nil),
		(*M7_GetFoo_)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[7].OneofWrappers = []any{
		(*M8_GetGetFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[8].OneofWrappers = []any{
		(*M9_GetGetFoo)(nil),
		(*M9_GetFoo_)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[10].OneofWrappers = []any{
		(*M11_SetSetFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[11].OneofWrappers = []any{
		(*M12_SetFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[13].OneofWrappers = []any{
		(*M14_HasHasFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[14].OneofWrappers = []any{
		(*M15_HasFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[16].OneofWrappers = []any{
		(*M17_ClearClearFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[17].OneofWrappers = []any{
		(*M18_ClearFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[18].OneofWrappers = []any{
		(*M19_WhichFoo)(nil),
	}
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes[19].OneofWrappers = []any{
		(*M20_WhichWhichFoo)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   20,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_goTypes,
		DependencyIndexes: file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_depIdxs,
		MessageInfos:      file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_msgTypes,
	}.Build()
	File_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto = out.File
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_rawDesc = nil
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_goTypes = nil
	file_cmd_protoc_gen_go_testdata_nameclash_test_name_clash_hybrid_proto_depIdxs = nil
}
