// 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. package reflection_test import ( "fmt" "math" "testing" testpb "google.golang.org/protobuf/internal/testprotos/testeditions/testeditions_hybrid" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/testing/prototest" ) func TestOpen3Concrete(t *testing.T) { prototest.Message{}.Test(t, newTestMessageOpen3(nil).ProtoReflect().Type()) } func TestOpen3Reflection(t *testing.T) { prototest.Message{}.Test(t, (*testpb.TestAllTypes)(nil).ProtoReflect().Type()) } func TestOpen3Shadow_GetConcrete_SetReflection(t *testing.T) { prototest.Message{}.Test(t, newShadow(func() (get, set protoreflect.ProtoMessage) { m := &testpb.TestAllTypes{} return newTestMessageOpen3(m), m }).ProtoReflect().Type()) } func TestOpen3Shadow_GetReflection_SetConcrete(t *testing.T) { prototest.Message{}.Test(t, newShadow(func() (get, set protoreflect.ProtoMessage) { m := &testpb.TestAllTypes{} return m, newTestMessageOpen3(m) }).ProtoReflect().Type()) } func newTestMessageOpen3(m *testpb.TestAllTypes) protoreflect.ProtoMessage { return &testProtoMessage{ m: m, md: m.ProtoReflect().Descriptor(), new: func() protoreflect.Message { return newTestMessageOpen3(&testpb.TestAllTypes{}).ProtoReflect() }, has: func(num protoreflect.FieldNumber) bool { switch num { case fieldSingularInt32: return m.GetSingularInt32() != 0 case fieldSingularInt64: return m.GetSingularInt64() != 0 case fieldSingularUint32: return m.GetSingularUint32() != 0 case fieldSingularUint64: return m.GetSingularUint64() != 0 case fieldSingularSint32: return m.GetSingularSint32() != 0 case fieldSingularSint64: return m.GetSingularSint64() != 0 case fieldSingularFixed32: return m.GetSingularFixed32() != 0 case fieldSingularFixed64: return m.GetSingularFixed64() != 0 case fieldSingularSfixed32: return m.GetSingularSfixed32() != 0 case fieldSingularSfixed64: return m.GetSingularSfixed64() != 0 case fieldSingularFloat: return m.GetSingularFloat() != 0 || math.Signbit(float64(m.GetSingularFloat())) case fieldSingularDouble: return m.GetSingularDouble() != 0 || math.Signbit(m.GetSingularDouble()) case fieldSingularBool: return m.GetSingularBool() != false case fieldSingularString: return m.GetSingularString() != "" case fieldSingularBytes: return len(m.GetSingularBytes()) != 0 case fieldSingularNestedEnum: return m.GetSingularNestedEnum() != testpb.TestAllTypes_FOO case fieldSingularForeignEnum: return m.GetSingularForeignEnum() != testpb.ForeignEnum_FOREIGN_ZERO case fieldSingularImportEnum: return m.GetSingularImportEnum() != testpb.ImportEnum_IMPORT_ZERO case fieldOptionalInt32: return m.HasOptionalInt32() case fieldOptionalInt64: return m.HasOptionalInt64() case fieldOptionalUint32: return m.HasOptionalUint32() case fieldOptionalUint64: return m.HasOptionalUint64() case fieldOptionalSint32: return m.HasOptionalSint32() case fieldOptionalSint64: return m.HasOptionalSint64() case fieldOptionalFixed32: return m.HasOptionalFixed32() case fieldOptionalFixed64: return m.HasOptionalFixed64() case fieldOptionalSfixed32: return m.HasOptionalSfixed32() case fieldOptionalSfixed64: return m.HasOptionalSfixed64() case fieldOptionalFloat: return m.HasOptionalFloat() case fieldOptionalDouble: return m.HasOptionalDouble() case fieldOptionalBool: return m.HasOptionalBool() case fieldOptionalString: return m.HasOptionalString() case fieldOptionalBytes: return m.HasOptionalBytes() case fieldOptionalGroup: return m.HasOptionalgroup() case fieldNotGroupLikeDelimited: return m.HasNotGroupLikeDelimited() case fieldOptionalNestedMessage: return m.HasOptionalNestedMessage() case fieldOptionalForeignMessage: return m.HasOptionalForeignMessage() case fieldOptionalImportMessage: return m.HasOptionalImportMessage() case fieldOptionalNestedEnum: return m.HasOptionalNestedEnum() case fieldOptionalForeignEnum: return m.HasOptionalForeignEnum() case fieldOptionalImportEnum: return m.HasOptionalImportEnum() case fieldOptionalLazyNestedMessage: return m.HasOptionalLazyNestedMessage() case fieldRepeatedInt32: return len(m.GetRepeatedInt32()) > 0 case fieldRepeatedInt64: return len(m.GetRepeatedInt64()) > 0 case fieldRepeatedUint32: return len(m.GetRepeatedUint32()) > 0 case fieldRepeatedUint64: return len(m.GetRepeatedUint64()) > 0 case fieldRepeatedSint32: return len(m.GetRepeatedSint32()) > 0 case fieldRepeatedSint64: return len(m.GetRepeatedSint64()) > 0 case fieldRepeatedFixed32: return len(m.GetRepeatedFixed32()) > 0 case fieldRepeatedFixed64: return len(m.GetRepeatedFixed64()) > 0 case fieldRepeatedSfixed32: return len(m.GetRepeatedSfixed32()) > 0 case fieldRepeatedSfixed64: return len(m.GetRepeatedSfixed64()) > 0 case fieldRepeatedFloat: return len(m.GetRepeatedFloat()) > 0 case fieldRepeatedDouble: return len(m.GetRepeatedDouble()) > 0 case fieldRepeatedBool: return len(m.GetRepeatedBool()) > 0 case fieldRepeatedString: return len(m.GetRepeatedString()) > 0 case fieldRepeatedBytes: return len(m.GetRepeatedBytes()) > 0 case fieldRepeatedGroup: return len(m.GetRepeatedgroup()) > 0 case fieldRepeatedNestedMessage: return len(m.GetRepeatedNestedMessage()) > 0 case fieldRepeatedForeignMessage: return len(m.GetRepeatedForeignMessage()) > 0 case fieldRepeatedImportMessage: return len(m.GetRepeatedImportmessage()) > 0 case fieldRepeatedNestedEnum: return len(m.GetRepeatedNestedEnum()) > 0 case fieldRepeatedForeignEnum: return len(m.GetRepeatedForeignEnum()) > 0 case fieldRepeatedImportEnum: return len(m.GetRepeatedImportenum()) > 0 case fieldMapInt32Int32: return len(m.GetMapInt32Int32()) > 0 case fieldMapInt64Int64: return len(m.GetMapInt64Int64()) > 0 case fieldMapUint32Uint32: return len(m.GetMapUint32Uint32()) > 0 case fieldMapUint64Uint64: return len(m.GetMapUint64Uint64()) > 0 case fieldMapSint32Sint32: return len(m.GetMapSint32Sint32()) > 0 case fieldMapSint64Sint64: return len(m.GetMapSint64Sint64()) > 0 case fieldMapFixed32Fixed32: return len(m.GetMapFixed32Fixed32()) > 0 case fieldMapFixed64Fixed64: return len(m.GetMapFixed64Fixed64()) > 0 case fieldMapSfixed32Sfixed32: return len(m.GetMapSfixed32Sfixed32()) > 0 case fieldMapSfixed64Sfixed64: return len(m.GetMapSfixed64Sfixed64()) > 0 case fieldMapInt32Float: return len(m.GetMapInt32Float()) > 0 case fieldMapInt32Double: return len(m.GetMapInt32Double()) > 0 case fieldMapBoolBool: return len(m.GetMapBoolBool()) > 0 case fieldMapStringString: return len(m.GetMapStringString()) > 0 case fieldMapStringBytes: return len(m.GetMapStringBytes()) > 0 case fieldMapStringNestedMessage: return len(m.GetMapStringNestedMessage()) > 0 case fieldMapStringNestedEnum: return len(m.GetMapStringNestedEnum()) > 0 case fieldDefaultInt32: return m.HasDefaultInt32() case fieldDefaultInt64: return m.HasDefaultInt64() case fieldDefaultUint32: return m.HasDefaultUint32() case fieldDefaultUint64: return m.HasDefaultUint64() case fieldDefaultSint32: return m.HasDefaultSint32() case fieldDefaultSint64: return m.HasDefaultSint64() case fieldDefaultFixed32: return m.HasDefaultFixed32() case fieldDefaultFixed64: return m.HasDefaultFixed64() case fieldDefaultSfixed32: return m.HasDefaultSfixed32() case fieldDefaultSfixed64: return m.HasDefaultSfixed64() case fieldDefaultFloat: return m.HasDefaultFloat() case fieldDefaultDouble: return m.HasDefaultDouble() case fieldDefaultBool: return m.HasDefaultBool() case fieldDefaultString: return m.HasDefaultString() case fieldDefaultBytes: return m.HasDefaultBytes() case fieldDefaultNestedEnum: return m.HasDefaultNestedEnum() case fieldDefaultForeignEnum: return m.HasDefaultForeignEnum() case fieldOneofUint32: return m.HasOneofUint32() case fieldOneofNestedMessage: return m.HasOneofNestedMessage() case fieldOneofString: return m.HasOneofString() case fieldOneofBytes: return m.HasOneofBytes() case fieldOneofBool: return m.HasOneofBool() case fieldOneofUint64: return m.HasOneofUint64() case fieldOneofFloat: return m.HasOneofFloat() case fieldOneofDouble: return m.HasOneofDouble() case fieldOneofEnum: return m.HasOneofEnum() case fieldOneofGroup: return m.HasOneofgroup() case fieldOneofOptionalUint32: return m.HasOneofOptionalUint32() default: panic(fmt.Sprintf("has: unknown field %d", num)) } }, get: func(num protoreflect.FieldNumber) any { switch num { case fieldSingularInt32: return m.GetSingularInt32() case fieldSingularInt64: return m.GetSingularInt64() case fieldSingularUint32: return m.GetSingularUint32() case fieldSingularUint64: return m.GetSingularUint64() case fieldSingularSint32: return m.GetSingularSint32() case fieldSingularSint64: return m.GetSingularSint64() case fieldSingularFixed32: return m.GetSingularFixed32() case fieldSingularFixed64: return m.GetSingularFixed64() case fieldSingularSfixed32: return m.GetSingularSfixed32() case fieldSingularSfixed64: return m.GetSingularSfixed64() case fieldSingularFloat: return m.GetSingularFloat() case fieldSingularDouble: return m.GetSingularDouble() case fieldSingularBool: return m.GetSingularBool() case fieldSingularString: return m.GetSingularString() case fieldSingularBytes: return m.GetSingularBytes() case fieldSingularNestedEnum: return m.GetSingularNestedEnum() case fieldSingularForeignEnum: return m.GetSingularForeignEnum() case fieldSingularImportEnum: return m.GetSingularImportEnum() case fieldOptionalInt32: return m.GetOptionalInt32() case fieldOptionalInt64: return m.GetOptionalInt64() case fieldOptionalUint32: return m.GetOptionalUint32() case fieldOptionalUint64: return m.GetOptionalUint64() case fieldOptionalSint32: return m.GetOptionalSint32() case fieldOptionalSint64: return m.GetOptionalSint64() case fieldOptionalFixed32: return m.GetOptionalFixed32() case fieldOptionalFixed64: return m.GetOptionalFixed64() case fieldOptionalSfixed32: return m.GetOptionalSfixed32() case fieldOptionalSfixed64: return m.GetOptionalSfixed64() case fieldOptionalFloat: return m.GetOptionalFloat() case fieldOptionalDouble: return m.GetOptionalDouble() case fieldOptionalBool: return m.GetOptionalBool() case fieldOptionalString: return m.GetOptionalString() case fieldOptionalBytes: return m.GetOptionalBytes() case fieldOptionalGroup: return m.GetOptionalgroup() case fieldNotGroupLikeDelimited: return m.GetNotGroupLikeDelimited() case fieldOptionalNestedMessage: return m.GetOptionalNestedMessage() case fieldOptionalForeignMessage: return m.GetOptionalForeignMessage() case fieldOptionalImportMessage: return m.GetOptionalImportMessage() case fieldOptionalNestedEnum: return m.GetOptionalNestedEnum() case fieldOptionalForeignEnum: return m.GetOptionalForeignEnum() case fieldOptionalImportEnum: return m.GetOptionalImportEnum() case fieldOptionalLazyNestedMessage: return m.GetOptionalLazyNestedMessage() case fieldRepeatedInt32: return m.GetRepeatedInt32() case fieldRepeatedInt64: return m.GetRepeatedInt64() case fieldRepeatedUint32: return m.GetRepeatedUint32() case fieldRepeatedUint64: return m.GetRepeatedUint64() case fieldRepeatedSint32: return m.GetRepeatedSint32() case fieldRepeatedSint64: return m.GetRepeatedSint64() case fieldRepeatedFixed32: return m.GetRepeatedFixed32() case fieldRepeatedFixed64: return m.GetRepeatedFixed64() case fieldRepeatedSfixed32: return m.GetRepeatedSfixed32() case fieldRepeatedSfixed64: return m.GetRepeatedSfixed64() case fieldRepeatedFloat: return m.GetRepeatedFloat() case fieldRepeatedDouble: return m.GetRepeatedDouble() case fieldRepeatedBool: return m.GetRepeatedBool() case fieldRepeatedString: return m.GetRepeatedString() case fieldRepeatedBytes: return m.GetRepeatedBytes() case fieldRepeatedGroup: return m.GetRepeatedgroup() case fieldRepeatedNestedMessage: return m.GetRepeatedNestedMessage() case fieldRepeatedForeignMessage: return m.GetRepeatedForeignMessage() case fieldRepeatedImportMessage: return m.GetRepeatedImportmessage() case fieldRepeatedNestedEnum: return m.GetRepeatedNestedEnum() case fieldRepeatedForeignEnum: return m.GetRepeatedForeignEnum() case fieldRepeatedImportEnum: return m.GetRepeatedImportenum() case fieldMapInt32Int32: return m.GetMapInt32Int32() case fieldMapInt64Int64: return m.GetMapInt64Int64() case fieldMapUint32Uint32: return m.GetMapUint32Uint32() case fieldMapUint64Uint64: return m.GetMapUint64Uint64() case fieldMapSint32Sint32: return m.GetMapSint32Sint32() case fieldMapSint64Sint64: return m.GetMapSint64Sint64() case fieldMapFixed32Fixed32: return m.GetMapFixed32Fixed32() case fieldMapFixed64Fixed64: return m.GetMapFixed64Fixed64() case fieldMapSfixed32Sfixed32: return m.GetMapSfixed32Sfixed32() case fieldMapSfixed64Sfixed64: return m.GetMapSfixed64Sfixed64() case fieldMapInt32Float: return m.GetMapInt32Float() case fieldMapInt32Double: return m.GetMapInt32Double() case fieldMapBoolBool: return m.GetMapBoolBool() case fieldMapStringString: return m.GetMapStringString() case fieldMapStringBytes: return m.GetMapStringBytes() case fieldMapStringNestedMessage: return m.GetMapStringNestedMessage() case fieldMapStringNestedEnum: return m.GetMapStringNestedEnum() case fieldDefaultInt32: return m.GetDefaultInt32() case fieldDefaultInt64: return m.GetDefaultInt64() case fieldDefaultUint32: return m.GetDefaultUint32() case fieldDefaultUint64: return m.GetDefaultUint64() case fieldDefaultSint32: return m.GetDefaultSint32() case fieldDefaultSint64: return m.GetDefaultSint64() case fieldDefaultFixed32: return m.GetDefaultFixed32() case fieldDefaultFixed64: return m.GetDefaultFixed64() case fieldDefaultSfixed32: return m.GetDefaultSfixed32() case fieldDefaultSfixed64: return m.GetDefaultSfixed64() case fieldDefaultFloat: return m.GetDefaultFloat() case fieldDefaultDouble: return m.GetDefaultDouble() case fieldDefaultBool: return m.GetDefaultBool() case fieldDefaultString: return m.GetDefaultString() case fieldDefaultBytes: return m.GetDefaultBytes() case fieldDefaultNestedEnum: return m.GetDefaultNestedEnum() case fieldDefaultForeignEnum: return m.GetDefaultForeignEnum() case fieldOneofUint32: return m.GetOneofUint32() case fieldOneofNestedMessage: return m.GetOneofNestedMessage() case fieldOneofString: return m.GetOneofString() case fieldOneofBytes: return m.GetOneofBytes() case fieldOneofBool: return m.GetOneofBool() case fieldOneofUint64: return m.GetOneofUint64() case fieldOneofFloat: return m.GetOneofFloat() case fieldOneofDouble: return m.GetOneofDouble() case fieldOneofEnum: return m.GetOneofEnum() case fieldOneofGroup: return m.GetOneofgroup() case fieldOneofOptionalUint32: return m.GetOneofOptionalUint32() default: panic(fmt.Sprintf("get: unknown field %d", num)) } }, set: func(num protoreflect.FieldNumber, v any) { switch num { case fieldSingularInt32: m.SetSingularInt32(v.(int32)) case fieldSingularInt64: m.SetSingularInt64(v.(int64)) case fieldSingularUint32: m.SetSingularUint32(v.(uint32)) case fieldSingularUint64: m.SetSingularUint64(v.(uint64)) case fieldSingularSint32: m.SetSingularSint32(v.(int32)) case fieldSingularSint64: m.SetSingularSint64(v.(int64)) case fieldSingularFixed32: m.SetSingularFixed32(v.(uint32)) case fieldSingularFixed64: m.SetSingularFixed64(v.(uint64)) case fieldSingularSfixed32: m.SetSingularSfixed32(v.(int32)) case fieldSingularSfixed64: m.SetSingularSfixed64(v.(int64)) case fieldSingularFloat: m.SetSingularFloat(v.(float32)) case fieldSingularDouble: m.SetSingularDouble(v.(float64)) case fieldSingularBool: m.SetSingularBool(v.(bool)) case fieldSingularString: m.SetSingularString(v.(string)) case fieldSingularBytes: m.SetSingularBytes(v.([]byte)) case fieldSingularNestedEnum: m.SetSingularNestedEnum(testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber))) case fieldSingularForeignEnum: m.SetSingularForeignEnum(testpb.ForeignEnum(v.(protoreflect.EnumNumber))) case fieldSingularImportEnum: m.SetSingularImportEnum(testpb.ImportEnum(v.(protoreflect.EnumNumber))) case fieldOptionalInt32: m.SetOptionalInt32(v.(int32)) case fieldOptionalInt64: m.SetOptionalInt64(v.(int64)) case fieldOptionalUint32: m.SetOptionalUint32(v.(uint32)) case fieldOptionalUint64: m.SetOptionalUint64(v.(uint64)) case fieldOptionalSint32: m.SetOptionalSint32(v.(int32)) case fieldOptionalSint64: m.SetOptionalSint64(v.(int64)) case fieldOptionalFixed32: m.SetOptionalFixed32(v.(uint32)) case fieldOptionalFixed64: m.SetOptionalFixed64(v.(uint64)) case fieldOptionalSfixed32: m.SetOptionalSfixed32(v.(int32)) case fieldOptionalSfixed64: m.SetOptionalSfixed64(v.(int64)) case fieldOptionalFloat: m.SetOptionalFloat(v.(float32)) case fieldOptionalDouble: m.SetOptionalDouble(v.(float64)) case fieldOptionalBool: m.SetOptionalBool(v.(bool)) case fieldOptionalString: m.SetOptionalString(v.(string)) case fieldOptionalBytes: m.SetOptionalBytes(v.([]byte)) case fieldOptionalGroup: m.SetOptionalgroup(v.(*testpb.TestAllTypes_OptionalGroup)) case fieldNotGroupLikeDelimited: m.SetNotGroupLikeDelimited(v.(*testpb.TestAllTypes_OptionalGroup)) case fieldOptionalNestedMessage: m.SetOptionalNestedMessage(v.(*testpb.TestAllTypes_NestedMessage)) case fieldOptionalForeignMessage: m.SetOptionalForeignMessage(v.(*testpb.ForeignMessage)) case fieldOptionalImportMessage: m.SetOptionalImportMessage(v.(*testpb.ImportMessage)) case fieldOptionalNestedEnum: m.SetOptionalNestedEnum(testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber))) case fieldOptionalForeignEnum: m.SetOptionalForeignEnum(testpb.ForeignEnum(v.(protoreflect.EnumNumber))) case fieldOptionalImportEnum: m.SetOptionalImportEnum(testpb.ImportEnum(v.(protoreflect.EnumNumber))) case fieldOptionalLazyNestedMessage: m.SetOptionalLazyNestedMessage(v.(*testpb.TestAllTypes_NestedMessage)) case fieldRepeatedInt32: m.SetRepeatedInt32(v.([]int32)) case fieldRepeatedInt64: m.SetRepeatedInt64(v.([]int64)) case fieldRepeatedUint32: m.SetRepeatedUint32(v.([]uint32)) case fieldRepeatedUint64: m.SetRepeatedUint64(v.([]uint64)) case fieldRepeatedSint32: m.SetRepeatedSint32(v.([]int32)) case fieldRepeatedSint64: m.SetRepeatedSint64(v.([]int64)) case fieldRepeatedFixed32: m.SetRepeatedFixed32(v.([]uint32)) case fieldRepeatedFixed64: m.SetRepeatedFixed64(v.([]uint64)) case fieldRepeatedSfixed32: m.SetRepeatedSfixed32(v.([]int32)) case fieldRepeatedSfixed64: m.SetRepeatedSfixed64(v.([]int64)) case fieldRepeatedFloat: m.SetRepeatedFloat(v.([]float32)) case fieldRepeatedDouble: m.SetRepeatedDouble(v.([]float64)) case fieldRepeatedBool: m.SetRepeatedBool(v.([]bool)) case fieldRepeatedString: m.SetRepeatedString(v.([]string)) case fieldRepeatedBytes: m.SetRepeatedBytes(v.([][]byte)) case fieldRepeatedGroup: m.SetRepeatedgroup(v.([]*testpb.TestAllTypes_RepeatedGroup)) case fieldRepeatedNestedMessage: m.SetRepeatedNestedMessage(v.([]*testpb.TestAllTypes_NestedMessage)) case fieldRepeatedForeignMessage: m.SetRepeatedForeignMessage(v.([]*testpb.ForeignMessage)) case fieldRepeatedImportMessage: m.SetRepeatedImportmessage(v.([]*testpb.ImportMessage)) case fieldRepeatedNestedEnum: m.SetRepeatedNestedEnum(v.([]testpb.TestAllTypes_NestedEnum)) case fieldRepeatedForeignEnum: m.SetRepeatedForeignEnum(v.([]testpb.ForeignEnum)) case fieldRepeatedImportEnum: m.SetRepeatedImportenum(v.([]testpb.ImportEnum)) case fieldMapInt32Int32: m.SetMapInt32Int32(v.(map[int32]int32)) case fieldMapInt64Int64: m.SetMapInt64Int64(v.(map[int64]int64)) case fieldMapUint32Uint32: m.SetMapUint32Uint32(v.(map[uint32]uint32)) case fieldMapUint64Uint64: m.SetMapUint64Uint64(v.(map[uint64]uint64)) case fieldMapSint32Sint32: m.SetMapSint32Sint32(v.(map[int32]int32)) case fieldMapSint64Sint64: m.SetMapSint64Sint64(v.(map[int64]int64)) case fieldMapFixed32Fixed32: m.SetMapFixed32Fixed32(v.(map[uint32]uint32)) case fieldMapFixed64Fixed64: m.SetMapFixed64Fixed64(v.(map[uint64]uint64)) case fieldMapSfixed32Sfixed32: m.SetMapSfixed32Sfixed32(v.(map[int32]int32)) case fieldMapSfixed64Sfixed64: m.SetMapSfixed64Sfixed64(v.(map[int64]int64)) case fieldMapInt32Float: m.SetMapInt32Float(v.(map[int32]float32)) case fieldMapInt32Double: m.SetMapInt32Double(v.(map[int32]float64)) case fieldMapBoolBool: m.SetMapBoolBool(v.(map[bool]bool)) case fieldMapStringString: m.SetMapStringString(v.(map[string]string)) case fieldMapStringBytes: m.SetMapStringBytes(v.(map[string][]byte)) case fieldMapStringNestedMessage: m.SetMapStringNestedMessage(v.(map[string]*testpb.TestAllTypes_NestedMessage)) case fieldMapStringNestedEnum: m.SetMapStringNestedEnum(v.(map[string]testpb.TestAllTypes_NestedEnum)) case fieldDefaultInt32: m.SetDefaultInt32(v.(int32)) case fieldDefaultInt64: m.SetDefaultInt64(v.(int64)) case fieldDefaultUint32: m.SetDefaultUint32(v.(uint32)) case fieldDefaultUint64: m.SetDefaultUint64(v.(uint64)) case fieldDefaultSint32: m.SetDefaultSint32(v.(int32)) case fieldDefaultSint64: m.SetDefaultSint64(v.(int64)) case fieldDefaultFixed32: m.SetDefaultFixed32(v.(uint32)) case fieldDefaultFixed64: m.SetDefaultFixed64(v.(uint64)) case fieldDefaultSfixed32: m.SetDefaultSfixed32(v.(int32)) case fieldDefaultSfixed64: m.SetDefaultSfixed64(v.(int64)) case fieldDefaultFloat: m.SetDefaultFloat(v.(float32)) case fieldDefaultDouble: m.SetDefaultDouble(v.(float64)) case fieldDefaultBool: m.SetDefaultBool(v.(bool)) case fieldDefaultString: m.SetDefaultString(v.(string)) case fieldDefaultBytes: m.SetDefaultBytes(v.([]byte)) case fieldDefaultNestedEnum: m.SetDefaultNestedEnum(testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber))) case fieldDefaultForeignEnum: m.SetDefaultForeignEnum(testpb.ForeignEnum(v.(protoreflect.EnumNumber))) case fieldDefaultInt32: m.SetDefaultInt32(v.(int32)) case fieldDefaultInt64: m.SetDefaultInt64(v.(int64)) case fieldDefaultUint32: m.SetDefaultUint32(v.(uint32)) case fieldDefaultUint64: m.SetDefaultUint64(v.(uint64)) case fieldDefaultSint32: m.SetDefaultSint32(v.(int32)) case fieldDefaultSint64: m.SetDefaultSint64(v.(int64)) case fieldDefaultFixed32: m.SetDefaultFixed32(v.(uint32)) case fieldDefaultFixed64: m.SetDefaultFixed64(v.(uint64)) case fieldDefaultSfixed32: m.SetDefaultSfixed32(v.(int32)) case fieldDefaultSfixed64: m.SetDefaultSfixed64(v.(int64)) case fieldDefaultFloat: m.SetDefaultFloat(v.(float32)) case fieldDefaultDouble: m.SetDefaultDouble(v.(float64)) case fieldDefaultBool: m.SetDefaultBool(v.(bool)) case fieldDefaultString: m.SetDefaultString(v.(string)) case fieldDefaultBytes: m.SetDefaultBytes(v.([]byte)) case fieldDefaultNestedEnum: m.SetDefaultNestedEnum(testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber))) case fieldDefaultForeignEnum: m.SetDefaultForeignEnum(testpb.ForeignEnum(v.(protoreflect.EnumNumber))) case fieldOneofUint32: m.SetOneofUint32(v.(uint32)) case fieldOneofNestedMessage: m.SetOneofNestedMessage(v.(*testpb.TestAllTypes_NestedMessage)) case fieldOneofString: m.SetOneofString(v.(string)) case fieldOneofBytes: m.SetOneofBytes(v.([]byte)) case fieldOneofBool: m.SetOneofBool(v.(bool)) case fieldOneofUint64: m.SetOneofUint64(v.(uint64)) case fieldOneofFloat: m.SetOneofFloat(v.(float32)) case fieldOneofDouble: m.SetOneofDouble(v.(float64)) case fieldOneofEnum: m.SetOneofEnum(testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber))) case fieldOneofGroup: m.SetOneofgroup(v.(*testpb.TestAllTypes_OneofGroup)) case fieldOneofOptionalUint32: m.SetOneofOptionalUint32(v.(uint32)) default: panic(fmt.Sprintf("set: unknown field %d", num)) } }, clear: func(num protoreflect.FieldNumber) { switch num { case fieldSingularInt32: m.SetSingularInt32(0) case fieldSingularInt64: m.SetSingularInt64(0) case fieldSingularUint32: m.SetSingularUint32(0) case fieldSingularUint64: m.SetSingularUint64(0) case fieldSingularSint32: m.SetSingularSint32(0) case fieldSingularSint64: m.SetSingularSint64(0) case fieldSingularFixed32: m.SetSingularFixed32(0) case fieldSingularFixed64: m.SetSingularFixed64(0) case fieldSingularSfixed32: m.SetSingularSfixed32(0) case fieldSingularSfixed64: m.SetSingularSfixed64(0) case fieldSingularFloat: m.SetSingularFloat(0) case fieldSingularDouble: m.SetSingularDouble(0) case fieldSingularBool: m.SetSingularBool(false) case fieldSingularString: m.SetSingularString("") case fieldSingularBytes: m.SetSingularBytes(nil) case fieldSingularNestedEnum: m.SetSingularNestedEnum(testpb.TestAllTypes_FOO) case fieldSingularForeignEnum: m.SetSingularForeignEnum(testpb.ForeignEnum_FOREIGN_ZERO) case fieldSingularImportEnum: m.SetSingularImportEnum(testpb.ImportEnum_IMPORT_ZERO) case fieldOptionalInt32: m.ClearOptionalInt32() case fieldOptionalInt64: m.ClearOptionalInt64() case fieldOptionalUint32: m.ClearOptionalUint32() case fieldOptionalUint64: m.ClearOptionalUint64() case fieldOptionalSint32: m.ClearOptionalSint32() case fieldOptionalSint64: m.ClearOptionalSint64() case fieldOptionalFixed32: m.ClearOptionalFixed32() case fieldOptionalFixed64: m.ClearOptionalFixed64() case fieldOptionalSfixed32: m.ClearOptionalSfixed32() case fieldOptionalSfixed64: m.ClearOptionalSfixed64() case fieldOptionalFloat: m.ClearOptionalFloat() case fieldOptionalDouble: m.ClearOptionalDouble() case fieldOptionalBool: m.ClearOptionalBool() case fieldOptionalString: m.ClearOptionalString() case fieldOptionalBytes: m.ClearOptionalBytes() case fieldOptionalGroup: m.ClearOptionalgroup() case fieldNotGroupLikeDelimited: m.ClearNotGroupLikeDelimited() case fieldOptionalNestedMessage: m.ClearOptionalNestedMessage() case fieldOptionalForeignMessage: m.ClearOptionalForeignMessage() case fieldOptionalImportMessage: m.ClearOptionalImportMessage() case fieldOptionalNestedEnum: m.ClearOptionalNestedEnum() case fieldOptionalForeignEnum: m.ClearOptionalForeignEnum() case fieldOptionalImportEnum: m.ClearOptionalImportEnum() case fieldOptionalLazyNestedMessage: m.ClearOptionalLazyNestedMessage() case fieldRepeatedInt32: m.SetRepeatedInt32(nil) case fieldRepeatedInt64: m.SetRepeatedInt64(nil) case fieldRepeatedUint32: m.SetRepeatedUint32(nil) case fieldRepeatedUint64: m.SetRepeatedUint64(nil) case fieldRepeatedSint32: m.SetRepeatedSint32(nil) case fieldRepeatedSint64: m.SetRepeatedSint64(nil) case fieldRepeatedFixed32: m.SetRepeatedFixed32(nil) case fieldRepeatedFixed64: m.SetRepeatedFixed64(nil) case fieldRepeatedSfixed32: m.SetRepeatedSfixed32(nil) case fieldRepeatedSfixed64: m.SetRepeatedSfixed64(nil) case fieldRepeatedFloat: m.SetRepeatedFloat(nil) case fieldRepeatedDouble: m.SetRepeatedDouble(nil) case fieldRepeatedBool: m.SetRepeatedBool(nil) case fieldRepeatedString: m.SetRepeatedString(nil) case fieldRepeatedBytes: m.SetRepeatedBytes(nil) case fieldRepeatedGroup: m.SetRepeatedgroup(nil) case fieldRepeatedNestedMessage: m.SetRepeatedNestedMessage(nil) case fieldRepeatedForeignMessage: m.SetRepeatedForeignMessage(nil) case fieldRepeatedImportMessage: m.SetRepeatedImportmessage(nil) case fieldRepeatedNestedEnum: m.SetRepeatedNestedEnum(nil) case fieldRepeatedForeignEnum: m.SetRepeatedForeignEnum(nil) case fieldRepeatedImportEnum: m.SetRepeatedImportenum(nil) case fieldMapInt32Int32: m.SetMapInt32Int32(nil) case fieldMapInt64Int64: m.SetMapInt64Int64(nil) case fieldMapUint32Uint32: m.SetMapUint32Uint32(nil) case fieldMapUint64Uint64: m.SetMapUint64Uint64(nil) case fieldMapSint32Sint32: m.SetMapSint32Sint32(nil) case fieldMapSint64Sint64: m.SetMapSint64Sint64(nil) case fieldMapFixed32Fixed32: m.SetMapFixed32Fixed32(nil) case fieldMapFixed64Fixed64: m.SetMapFixed64Fixed64(nil) case fieldMapSfixed32Sfixed32: m.SetMapSfixed32Sfixed32(nil) case fieldMapSfixed64Sfixed64: m.SetMapSfixed64Sfixed64(nil) case fieldMapInt32Float: m.SetMapInt32Float(nil) case fieldMapInt32Double: m.SetMapInt32Double(nil) case fieldMapBoolBool: m.SetMapBoolBool(nil) case fieldMapStringString: m.SetMapStringString(nil) case fieldMapStringBytes: m.SetMapStringBytes(nil) case fieldMapStringNestedMessage: m.SetMapStringNestedMessage(nil) case fieldMapStringNestedEnum: m.SetMapStringNestedEnum(nil) case fieldDefaultInt32: m.ClearDefaultInt32() case fieldDefaultInt64: m.ClearDefaultInt64() case fieldDefaultUint32: m.ClearDefaultUint32() case fieldDefaultUint64: m.ClearDefaultUint64() case fieldDefaultSint32: m.ClearDefaultSint32() case fieldDefaultSint64: m.ClearDefaultSint64() case fieldDefaultFixed32: m.ClearDefaultFixed32() case fieldDefaultFixed64: m.ClearDefaultFixed64() case fieldDefaultSfixed32: m.ClearDefaultSfixed32() case fieldDefaultSfixed64: m.ClearDefaultSfixed64() case fieldDefaultFloat: m.ClearDefaultFloat() case fieldDefaultDouble: m.ClearDefaultDouble() case fieldDefaultBool: m.ClearDefaultBool() case fieldDefaultString: m.ClearDefaultString() case fieldDefaultBytes: m.ClearDefaultBytes() case fieldDefaultNestedEnum: m.ClearDefaultNestedEnum() case fieldDefaultForeignEnum: m.ClearDefaultForeignEnum() case fieldOneofUint32: m.ClearOneofUint32() case fieldOneofNestedMessage: m.ClearOneofNestedMessage() case fieldOneofString: m.ClearOneofString() case fieldOneofBytes: m.ClearOneofBytes() case fieldOneofBool: m.ClearOneofBool() case fieldOneofUint64: m.ClearOneofUint64() case fieldOneofFloat: m.ClearOneofFloat() case fieldOneofDouble: m.ClearOneofDouble() case fieldOneofEnum: m.ClearOneofEnum() case fieldOneofGroup: m.ClearOneofgroup() case fieldOneofOptionalUint32: m.ClearOneofOptionalUint32() default: panic(fmt.Sprintf("clear: unknown field %d", num)) } }, } }