From 099576c1813e76b204c53e38eaf1c254d9289d90 Mon Sep 17 00:00:00 2001 From: Doria Keung Date: Fri, 10 Jan 2025 15:21:47 -0500 Subject: [PATCH] Make upgrade (#9) * Make upgrade * Fix CI --- check/check_service_handler.go | 4 +- check/checktest/checktest.go | 2 +- check/checkutil/util.go | 22 ++++---- check/client_test.go | 4 +- .../example/gen/acme/option/v1/option.pb.go | 2 +- go.mod | 29 +++++------ go.sum | 50 ++++++++++--------- internal/pkg/thread/thread_test.go | 4 +- option/options.go | 2 +- 9 files changed, 61 insertions(+), 58 deletions(-) diff --git a/check/check_service_handler.go b/check/check_service_handler.go index 6ab9431..18b2f15 100644 --- a/check/check_service_handler.go +++ b/check/check_service_handler.go @@ -257,7 +257,7 @@ func (c *checkServiceHandler) getRulesAndNextPageToken(pageSize int, pageToken s pageSize = defaultPageSize } resultRules := make([]Rule, 0, len(c.rules)-index) - for i := 0; i < pageSize; i++ { + for range pageSize { if index >= len(c.rules) { break } @@ -284,7 +284,7 @@ func (c *checkServiceHandler) getCategoriesAndNextPageToken(pageSize int, pageTo pageSize = defaultPageSize } resultCategories := make([]Category, 0, len(c.categories)-index) - for i := 0; i < pageSize; i++ { + for range pageSize { if index >= len(c.categories) { break } diff --git a/check/checktest/checktest.go b/check/checktest/checktest.go index 1b6a37f..e854462 100644 --- a/check/checktest/checktest.go +++ b/check/checktest/checktest.go @@ -380,7 +380,7 @@ func unusedDependencyIndexesForFilePathToUnusedDependencyFilePaths( return unusedDependencyIndexes } dependencyFilePaths := fileDescriptorProto.GetDependency() - for i := 0; i < len(dependencyFilePaths); i++ { + for i := range len(dependencyFilePaths) { if _, ok := unusedDependencyFilePaths[dependencyFilePaths[i]]; ok { unusedDependencyIndexes = append(unusedDependencyIndexes, int32(i)) } diff --git a/check/checkutil/util.go b/check/checkutil/util.go index dbbfb1f..3115603 100644 --- a/check/checkutil/util.go +++ b/check/checkutil/util.go @@ -186,7 +186,7 @@ func forEachFileImport( f func(protoreflect.FileImport) error, ) error { fileImports := fileDescriptor.Imports() - for i := 0; i < fileImports.Len(); i++ { + for i := range fileImports.Len() { if err := f(fileImports.Get(i)); err != nil { return err } @@ -199,13 +199,13 @@ func forEachEnum( f func(protoreflect.EnumDescriptor) error, ) error { enums := container.Enums() - for i := 0; i < enums.Len(); i++ { + for i := range enums.Len() { if err := f(enums.Get(i)); err != nil { return err } } messages := container.Messages() - for i := 0; i < messages.Len(); i++ { + for i := range messages.Len() { // Nested enums. if err := forEachEnum(messages.Get(i), f); err != nil { return err @@ -219,7 +219,7 @@ func forEachEnumValue( f func(protoreflect.EnumValueDescriptor) error, ) error { enumValues := enumDescriptor.Values() - for i := 0; i < enumValues.Len(); i++ { + for i := range enumValues.Len() { if err := f(enumValues.Get(i)); err != nil { return err } @@ -232,7 +232,7 @@ func forEachMessage( f func(protoreflect.MessageDescriptor) error, ) error { messages := container.Messages() - for i := 0; i < messages.Len(); i++ { + for i := range messages.Len() { messageDescriptor := messages.Get(i) if err := f(messageDescriptor); err != nil { return err @@ -253,13 +253,13 @@ func forEachField( container, func(messageDescriptor protoreflect.MessageDescriptor) error { fields := messageDescriptor.Fields() - for i := 0; i < fields.Len(); i++ { + for i := range fields.Len() { if err := f(fields.Get(i)); err != nil { return err } } extensions := messageDescriptor.Extensions() - for i := 0; i < extensions.Len(); i++ { + for i := range extensions.Len() { if err := f(extensions.Get(i)); err != nil { return err } @@ -270,7 +270,7 @@ func forEachField( return err } extensions := container.Extensions() - for i := 0; i < extensions.Len(); i++ { + for i := range extensions.Len() { if err := f(extensions.Get(i)); err != nil { return err } @@ -283,7 +283,7 @@ func forEachOneof( f func(protoreflect.OneofDescriptor) error, ) error { oneofs := messageDescriptor.Oneofs() - for i := 0; i < oneofs.Len(); i++ { + for i := range oneofs.Len() { if err := f(oneofs.Get(i)); err != nil { return err } @@ -296,7 +296,7 @@ func forEachService( f func(protoreflect.ServiceDescriptor) error, ) error { services := fileDescriptor.Services() - for i := 0; i < services.Len(); i++ { + for i := range services.Len() { if err := f(services.Get(i)); err != nil { return err } @@ -309,7 +309,7 @@ func forEachMethod( f func(protoreflect.MethodDescriptor) error, ) error { methods := serviceDescriptor.Methods() - for i := 0; i < methods.Len(); i++ { + for i := range methods.Len() { if err := f(methods.Get(i)); err != nil { return err } diff --git a/check/client_test.go b/check/client_test.go index 3392ce5..54139f3 100644 --- a/check/client_test.go +++ b/check/client_test.go @@ -134,7 +134,7 @@ func TestClientListRulesCount(t *testing.T) { func testClientListRulesCount(t *testing.T, count int) { require.True(t, count < 10000, "count must be less than 10000 for sorting to work properly in this test") ruleSpecs := make([]*RuleSpec, count) - for i := 0; i < count; i++ { + for i := range count { ruleSpecs[i] = &RuleSpec{ ID: fmt.Sprintf("RULE%05d", i), Purpose: fmt.Sprintf("Test RULE%05d.", i), @@ -150,7 +150,7 @@ func testClientListRulesCount(t *testing.T, count int) { rules, err := client.ListRules(context.Background()) require.NoError(t, err) require.Equal(t, count, len(rules)) - for i := 0; i < count; i++ { + for i := range count { require.Equal(t, ruleSpecs[i].ID, rules[i].ID()) } } diff --git a/check/internal/example/gen/acme/option/v1/option.pb.go b/check/internal/example/gen/acme/option/v1/option.pb.go index a824a9c..48cd3ac 100644 --- a/check/internal/example/gen/acme/option/v1/option.pb.go +++ b/check/internal/example/gen/acme/option/v1/option.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.2 // protoc (unknown) // source: acme/option/v1/option.proto diff --git a/go.mod b/go.mod index e766f3c..ffec290 100644 --- a/go.mod +++ b/go.mod @@ -1,34 +1,35 @@ module buf.build/go/bufplugin -go 1.21 +go 1.22 -toolchain go1.23.1 +toolchain go1.23.4 require ( - buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.35.1-20241023225133-42bdb4b67625.1 + buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.2-20241031151143-70f632351282.1 buf.build/go/spdx v0.2.0 github.com/bufbuild/protocompile v0.14.1 - github.com/bufbuild/protovalidate-go v0.7.3-0.20241015162221-1446f1e1d576 - github.com/stretchr/testify v1.9.0 - google.golang.org/protobuf v1.35.1 + github.com/bufbuild/protovalidate-go v0.8.2 + github.com/stretchr/testify v1.10.0 + google.golang.org/protobuf v1.36.2 pluginrpc.com/pluginrpc v0.5.0 ) require ( - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.1-20240920164238-5a7b106cbb87.1 // indirect - buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.34.2-20240828222655-5345c0a56177.2 // indirect + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.2-20241127180247-a33202765966.1 // indirect + buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.2-20241007202033-cf42259fcbfc.1 // indirect + cel.dev/expr v0.19.1 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/google/cel-go v0.21.0 // indirect + github.com/google/cel-go v0.22.1 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/text v0.18.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240924160255-9d4c2d233b61 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/text v0.21.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index ce9ddc3..052e24f 100644 --- a/go.sum +++ b/go.sum @@ -1,24 +1,26 @@ -buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.35.1-20241023225133-42bdb4b67625.1 h1:O31Hu5Oho5suEWOD7FuMU9vfzeQT07ukTu4YuBVjLbw= -buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.35.1-20241023225133-42bdb4b67625.1/go.mod h1:rYPnjsUZ2lGpoQ/T322HWZQil9/MIZF2njP+/u/0GKg= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.1-20240920164238-5a7b106cbb87.1 h1:9wP6ZZYWnF2Z0TxmII7m3XNykxnP4/w8oXeth6ekcRI= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.1-20240920164238-5a7b106cbb87.1/go.mod h1:Duw/9JoXkXIydyASnLYIiufkzySThoqavOsF+IihqvM= -buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.34.2-20240828222655-5345c0a56177.2 h1:oSi+Adw4xvIjXrW8eY8QGR3sBdfWeY5HN/RefnRt52M= -buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.34.2-20240828222655-5345c0a56177.2/go.mod h1:GjH0gjlY/ns16X8d6eaXV2W+6IFwsO5Ly9WVnzyd1E0= +buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.2-20241031151143-70f632351282.1 h1:rTKJRI5czPU2E2DyVxgDO6Y0EYduap5DavsIgGX+mxM= +buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.2-20241031151143-70f632351282.1/go.mod h1:MX7ir1mUpGuEenIC/vwfBhS2AQwQzkbXYfmJCaINssY= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.2-20241127180247-a33202765966.1 h1:BICM6du/XzvEgeorNo4xgohK3nMTmEPViGyd5t7xVqk= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.2-20241127180247-a33202765966.1/go.mod h1:JnMVLi3qrNYPODVpEKG7UjHLl/d2zR221e66YCSmP2Q= +buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.2-20241007202033-cf42259fcbfc.1 h1:g+VqvesBFd4hLlLd+EpoyzHf7pGM2msvXtRZ+YHdz0o= +buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.2-20241007202033-cf42259fcbfc.1/go.mod h1:HreagKBdLMvrTzlNYDU7j/aHbN+Y0b/X1mo16hK7X1s= buf.build/go/spdx v0.2.0 h1:IItqM0/cMxvFJJumcBuP8NrsIzMs/UYjp/6WSpq8LTw= buf.build/go/spdx v0.2.0/go.mod h1:bXdwQFem9Si3nsbNy8aJKGPoaPi5DKwdeEp5/ArZ6w8= +cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4= +cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw= github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c= -github.com/bufbuild/protovalidate-go v0.7.3-0.20241015162221-1446f1e1d576 h1:A4TfjZJqApnAvGKDgxHqA1rG6BK1OswyNcTcnSrDbJc= -github.com/bufbuild/protovalidate-go v0.7.3-0.20241015162221-1446f1e1d576/go.mod h1:R/UFeIPyFAh0eH7Ic/JJbO2ABdkxFuZZKDbzsI5UiwM= +github.com/bufbuild/protovalidate-go v0.8.2 h1:sgzXHkHYP6HnAsL2Rd3I1JxkYUyEQUv9awU1PduMxbM= +github.com/bufbuild/protovalidate-go v0.8.2/go.mod h1:K6w8iPNAXBoIivVueSELbUeUl+MmeTQfCDSug85pn3M= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= -github.com/google/cel-go v0.21.0 h1:cl6uW/gxN+Hy50tNYvI691+sXxioCnstFzLp2WO4GCI= -github.com/google/cel-go v0.21.0/go.mod h1:rHUlWCcBKgyEk+eV03RPdZUekPp6YcJwV0FxuUksYxc= +github.com/google/cel-go v0.22.1 h1:AfVXx3chM2qwoSbM7Da8g8hX8OVSkBFwX+rz2+PcK40= +github.com/google/cel-go v0.22.1/go.mod h1:BuznPXXfQDpXKWQ9sPW3TzlAJN5zzFe+i9tIs0yC4s8= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= @@ -39,23 +41,23 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 h1:kx6Ds3MlpiUHKj7syVnbp57++8WpuKPcR5yjLBjvLEA= golang.org/x/exp v0.0.0-20240823005443-9b4947da3948/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -google.golang.org/genproto/googleapis/api v0.0.0-20240924160255-9d4c2d233b61 h1:pAjq8XSSzXoP9ya73v/w+9QEAAJNluLrpmMq5qFJQNY= -google.golang.org/genproto/googleapis/api v0.0.0-20240924160255-9d4c2d233b61/go.mod h1:O6rP0uBq4k0mdi/b4ZEMAZjkhYWhS815kCvaMha4VN8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 h1:N9BgCIAUvn/M+p4NJccWPWb3BWh88+zyL0ll9HgbEeM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24= +google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/pkg/thread/thread_test.go b/internal/pkg/thread/thread_test.go index 4cdeffd..d4c77a9 100644 --- a/internal/pkg/thread/thread_test.go +++ b/internal/pkg/thread/thread_test.go @@ -31,7 +31,7 @@ func TestParallelizeSimple(t *testing.T) { numJobs := 10 var executed atomic.Int64 jobs := make([]func(context.Context) error, 0, numJobs) - for i := 0; i < numJobs; i++ { + for range numJobs { jobs = append( jobs, func(context.Context) error { @@ -51,7 +51,7 @@ func TestParallelizeImmediateCancellation(t *testing.T) { numJobs := 10 var executed atomic.Int64 jobs := make([]func(context.Context) error, 0, numJobs) - for i := 0; i < numJobs; i++ { + for range numJobs { jobs = append( jobs, func(context.Context) error { diff --git a/option/options.go b/option/options.go index 84bc0cd..e1595e9 100644 --- a/option/options.go +++ b/option/options.go @@ -301,7 +301,7 @@ func valueToProtoValue(value any) (*optionv1.Value, error) { }, nil } values := make([]*optionv1.Value, reflectValue.Len()) - for i := 0; i < reflectValue.Len(); i++ { + for i := range reflectValue.Len() { subValue, err := valueToProtoValue(reflectValue.Index(i).Interface()) if err != nil { return nil, err