Skip to content

Commit 7462e43

Browse files
authored
go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./... (#588)
1 parent 193dc1c commit 7462e43

File tree

16 files changed

+62
-50
lines changed

16 files changed

+62
-50
lines changed

debug/debug.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ func LogPayloads(opts ...LogPayloadsOption) func(goa.Endpoint) goa.Endpoint {
123123
reqKey = "client-" + reqKey
124124
resKey = "client-" + resKey
125125
}
126-
return func(ctx context.Context, req interface{}) (interface{}, error) {
126+
return func(ctx context.Context, req any) (any, error) {
127127
if !log.DebugEnabled(ctx) {
128128
return next(ctx, req)
129129
}

debug/debug_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func TestDebugPayloads(t *testing.T) {
127127
newDebugLogContext := func() context.Context {
128128
return log.Context(newLogContext(), log.WithDebug())
129129
}
130-
formatTest := func(_ context.Context, a interface{}) string {
130+
formatTest := func(_ context.Context, a any) string {
131131
return "test"
132132
}
133133

debug/grpc.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ import (
1414
func UnaryServerInterceptor() grpc.UnaryServerInterceptor {
1515
return func(
1616
ctx context.Context,
17-
req interface{},
17+
req any,
1818
_ *grpc.UnaryServerInfo,
1919
handler grpc.UnaryHandler,
20-
) (interface{}, error) {
20+
) (any, error) {
2121
if debugLogs {
2222
ctx = log.Context(ctx, log.WithDebug())
2323
} else {
@@ -33,7 +33,7 @@ func UnaryServerInterceptor() grpc.UnaryServerInterceptor {
3333
// in conjunction with the MountDebugLogEnabler function.
3434
func StreamServerInterceptor() grpc.StreamServerInterceptor {
3535
return func(
36-
srv interface{},
36+
srv any,
3737
stream grpc.ServerStream,
3838
_ *grpc.StreamServerInfo,
3939
handler grpc.StreamHandler,

debug/options.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ type (
2121

2222
// FormatFunc is used to format the logged value for payloads and
2323
// results.
24-
FormatFunc func(context.Context, interface{}) string
24+
FormatFunc func(context.Context, any) string
2525

2626
lpOptions struct {
2727
maxsize int // maximum number of bytes in a single log message or value
@@ -107,7 +107,7 @@ func WithOffValue(offval string) DebugLogEnablerOption {
107107
}
108108

109109
// FormatJSON returns a function that formats the given value as JSON.
110-
func FormatJSON(_ context.Context, v interface{}) string {
110+
func FormatJSON(_ context.Context, v any) string {
111111
js, err := json.Marshal(v)
112112
if err != nil {
113113
return fmt.Sprintf("<invalid: %s>", err)

go.work.sum

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,15 +622,20 @@ go.opentelemetry.io/contrib/detectors/gcp v1.35.0/go.mod h1:qGWP8/+ILwMRIUf9uIVL
622622
go.opentelemetry.io/contrib/detectors/gcp v1.36.0/go.mod h1:IbBN8uAIIx734PTonTPxAxnjc2pQTxWNkwfstZ+6H2k=
623623
go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg=
624624
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
625+
go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E=
625626
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4=
626627
go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8=
627628
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
629+
go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs=
628630
go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU=
629631
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
632+
go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY=
630633
go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ=
631634
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
635+
go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4=
632636
go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8=
633637
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
638+
go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA=
634639
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
635640
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
636641
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
@@ -651,6 +656,7 @@ golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+Zdx
651656
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
652657
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
653658
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
659+
golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
654660
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
655661
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
656662
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
@@ -662,6 +668,7 @@ golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
662668
golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
663669
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
664670
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
671+
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
665672
golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
666673
golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
667674
golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
@@ -676,13 +683,15 @@ golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
676683
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
677684
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
678685
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
686+
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
679687
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
680688
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
681689
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
682690
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
683691
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
684692
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
685693
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
694+
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
686695
golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457 h1:zf5N6UOrA487eEFacMePxjXAJctxKmyjKUsjA11Uzuk=
687696
golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0=
688697
golang.org/x/telemetry v0.0.0-20250710130107-8d8967aff50b/go.mod h1:4ZwOYna0/zsOKwuR5X/m0QFOJpSZvAxFfkQT+Erd9D4=
@@ -694,13 +703,15 @@ golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
694703
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
695704
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
696705
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
706+
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
697707
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
698708
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
699709
golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
700710
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
701711
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
702712
golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s=
703713
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
714+
golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
704715
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
705716
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
706717
google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc h1:Nf+EdcTLHR8qDNN/KfkQL0u0ssxt9OhbaWCl5C0ucEI=
@@ -743,6 +754,7 @@ google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7
743754
google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
744755
google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
745756
google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
757+
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
746758
google.golang.org/grpc/examples v0.0.0-20230224211313-3775f633ce20/go.mod h1:Nr5H8+MlGWr5+xX/STzdoEqJrO+YteqFbMyCsrb6mH0=
747759
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
748760
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=

log/adapt.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -96,53 +96,53 @@ func ToLogrSink(ctx context.Context) *LogrSink {
9696
}
9797

9898
// Fatal is equivalent to l.Print() followed by a call to os.Exit(1).
99-
func (l *StdLogger) Fatal(v ...interface{}) {
99+
func (l *StdLogger) Fatal(v ...any) {
100100
l.Print(v...)
101101
osExit(1)
102102
}
103103

104104
// Fatalf is equivalent to l.Printf() followed by a call to os.Exit(1).
105-
func (l *StdLogger) Fatalf(format string, v ...interface{}) {
105+
func (l *StdLogger) Fatalf(format string, v ...any) {
106106
l.Printf(format, v...)
107107
osExit(1)
108108
}
109109

110110
// Fatalln is equivalent to l.Println() followed by a call to os.Exit(1).
111-
func (l *StdLogger) Fatalln(v ...interface{}) {
111+
func (l *StdLogger) Fatalln(v ...any) {
112112
l.Println(v...)
113113
osExit(1)
114114
}
115115

116116
// Panic is equivalent to l.Print() followed by a call to panic().
117-
func (l *StdLogger) Panic(v ...interface{}) {
117+
func (l *StdLogger) Panic(v ...any) {
118118
l.Print(v...)
119119
panic(fmt.Sprint(v...))
120120
}
121121

122122
// Panicf is equivalent to l.Printf() followed by a call to panic().
123-
func (l *StdLogger) Panicf(format string, v ...interface{}) {
123+
func (l *StdLogger) Panicf(format string, v ...any) {
124124
l.Printf(format, v...)
125125
panic(fmt.Sprintf(format, v...))
126126
}
127127

128128
// Panicln is equivalent to l.Println() followed by a call to panic().
129-
func (l *StdLogger) Panicln(v ...interface{}) {
129+
func (l *StdLogger) Panicln(v ...any) {
130130
l.Println(v...)
131131
panic(fmt.Sprintln(v...))
132132
}
133133

134134
// Print print to the logger. Arguments are handled in the manner of fmt.Print.
135-
func (l *StdLogger) Print(v ...interface{}) {
135+
func (l *StdLogger) Print(v ...any) {
136136
Printf(l.ctx, "%s", fmt.Sprint(v...))
137137
}
138138

139139
// Printf prints to the logger. Arguments are handled in the manner of fmt.Printf.
140-
func (l *StdLogger) Printf(format string, v ...interface{}) {
140+
func (l *StdLogger) Printf(format string, v ...any) {
141141
Printf(l.ctx, format, v...)
142142
}
143143

144144
// Println prints to the logger. Arguments are handled in the manner of fmt.Println.
145-
func (l *StdLogger) Println(v ...interface{}) {
145+
func (l *StdLogger) Println(v ...any) {
146146
Printf(l.ctx, "%s", fmt.Sprintln(v...))
147147
}
148148

@@ -165,7 +165,7 @@ func (l *LogrSink) Enabled(level int) bool {
165165
return true
166166
}
167167

168-
func (l *LogrSink) Info(level int, msg string, keysAndValues ...interface{}) {
168+
func (l *LogrSink) Info(level int, msg string, keysAndValues ...any) {
169169
kvs := make([]KV, len(keysAndValues)/2+1)
170170
kvs[0] = KV{K: "msg", V: msg}
171171
for i := 0; i < len(keysAndValues); i += 2 {
@@ -178,7 +178,7 @@ func (l *LogrSink) Info(level int, msg string, keysAndValues ...interface{}) {
178178
}
179179
}
180180

181-
func (l *LogrSink) Error(err error, msg string, keysAndValues ...interface{}) {
181+
func (l *LogrSink) Error(err error, msg string, keysAndValues ...any) {
182182
kvs := make([]KV, len(keysAndValues)/2+1)
183183
kvs[0] = KV{K: "msg", V: msg}
184184
for i := 0; i < len(keysAndValues); i += 2 {
@@ -207,13 +207,13 @@ func (l *LogrSink) WithName(name string) logr.LogSink {
207207
}
208208

209209
// Log creates a log entry using a sequence of key/value pairs.
210-
func (l goaLogger) Log(keyvals ...interface{}) error {
210+
func (l goaLogger) Log(keyvals ...any) error {
211211
n := (len(keyvals) + 1) / 2
212212
if len(keyvals)%2 != 0 {
213213
keyvals = append(keyvals, "MISSING")
214214
}
215215
kvs := make([]KV, n)
216-
for i := 0; i < n; i++ {
216+
for i := range n {
217217
k, v := keyvals[2*i], keyvals[2*i+1]
218218
kvs[i] = KV{K: fmt.Sprint(k), V: v}
219219
}

log/fields.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ type (
55
// booleans, nil or a slice of these types.
66
KV struct {
77
K string
8-
V interface{}
8+
V any
99
}
1010

1111
// Fielder is an interface that will return a slice of KV
@@ -15,7 +15,7 @@ type (
1515

1616
// Fields allows to quickly define fields for cases where you are OK with
1717
// non-deterministic order of the fields
18-
Fields map[string]interface{}
18+
Fields map[string]any
1919

2020
kvList []KV
2121
)

log/format.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ func appendJSONString(b []byte, s string) []byte {
212212
return append(b, '"')
213213
}
214214

215-
func appendJSONArray(b []byte, arr []interface{}) []byte {
215+
func appendJSONArray(b []byte, arr []any) []byte {
216216
b = append(b, '[')
217217
for i, v := range arr {
218218
if i > 0 {

log/format_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ func TestFormat(t *testing.T) {
4141
{"sliceFloat32", []float32{7, 7}},
4242
{"sliceFloat64", []float64{8.1, 8.1}},
4343
{"sliceBool", []bool{true, false, true}},
44-
{"sliceNil", []interface{}{nil, nil, nil}},
45-
{"sliceMix", []interface{}{"a", 1, true, nil}},
44+
{"sliceNil", []any{nil, nil, nil}},
45+
{"sliceMix", []any{"a", 1, true, nil}},
4646
}
4747

4848
formattedKeyVals := "string=val " +

log/grpc.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ func UnaryServerInterceptor(logCtx context.Context, opts ...GRPCLogOption) grpc.
5252

5353
return func(
5454
ctx context.Context,
55-
req interface{},
55+
req any,
5656
info *grpc.UnaryServerInfo,
5757
handler grpc.UnaryHandler,
58-
) (interface{}, error) {
58+
) (any, error) {
5959
ctx = WithContext(ctx, logCtx)
6060
if !o.disableCallID {
6161
ctx = With(ctx, KV{RequestIDKey, shortID()})
@@ -101,7 +101,7 @@ func StreamServerInterceptor(logCtx context.Context, opts ...GRPCLogOption) grpc
101101
}
102102

103103
return func(
104-
srv interface{},
104+
srv any,
105105
stream grpc.ServerStream,
106106
info *grpc.StreamServerInfo,
107107
handler grpc.StreamHandler,
@@ -151,7 +151,7 @@ func UnaryClientInterceptor(opts ...GRPCLogOption) grpc.UnaryClientInterceptor {
151151
return func(
152152
ctx context.Context,
153153
fullmethod string,
154-
req, reply interface{},
154+
req, reply any,
155155
cc *grpc.ClientConn,
156156
invoker grpc.UnaryInvoker,
157157
opts ...grpc.CallOption,

0 commit comments

Comments
 (0)