Skip to content

Commit 7221fe0

Browse files
committed
Replace interface{} with any
1 parent 4a536fd commit 7221fe0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+469
-469
lines changed

ast/func.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import "reflect"
44

55
type Function struct {
66
Name string
7-
Func func(args ...interface{}) (interface{}, error)
8-
Fast func(arg interface{}) interface{}
7+
Func func(args ...any) (any, error)
8+
Fast func(arg any) any
99
Types []reflect.Type
1010
Validate func(args []reflect.Type) (reflect.Type, error)
1111
Predicate bool

ast/node.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ type StringNode struct {
7777

7878
type ConstantNode struct {
7979
base
80-
Value interface{}
80+
Value any
8181
}
8282

8383
type UnaryNode struct {

ast/print_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func TestPrint_MemberNode(t *testing.T) {
9191

9292
func TestPrint_ConstantNode(t *testing.T) {
9393
tests := []struct {
94-
input interface{}
94+
input any
9595
want string
9696
}{
9797
{nil, `nil`},

bench_test.go

+34-34
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
)
1010

1111
func Benchmark_expr(b *testing.B) {
12-
params := make(map[string]interface{})
12+
params := make(map[string]any)
1313
params["Origin"] = "MOW"
1414
params["Country"] = "RU"
1515
params["Adults"] = 1
@@ -18,7 +18,7 @@ func Benchmark_expr(b *testing.B) {
1818
program, err := expr.Compile(`(Origin == "MOW" || Country == "RU") && (Value >= 100 || Adults == 1)`, expr.Env(params))
1919
require.NoError(b, err)
2020

21-
var out interface{}
21+
var out any
2222

2323
b.ResetTimer()
2424
for n := 0; n < b.N; n++ {
@@ -31,7 +31,7 @@ func Benchmark_expr(b *testing.B) {
3131
}
3232

3333
func Benchmark_expr_reuseVm(b *testing.B) {
34-
params := make(map[string]interface{})
34+
params := make(map[string]any)
3535
params["Origin"] = "MOW"
3636
params["Country"] = "RU"
3737
params["Adults"] = 1
@@ -40,7 +40,7 @@ func Benchmark_expr_reuseVm(b *testing.B) {
4040
program, err := expr.Compile(`(Origin == "MOW" || Country == "RU") && (Value >= 100 || Adults == 1)`, expr.Env(params))
4141
require.NoError(b, err)
4242

43-
var out interface{}
43+
var out any
4444
v := vm.VM{}
4545

4646
b.ResetTimer()
@@ -54,14 +54,14 @@ func Benchmark_expr_reuseVm(b *testing.B) {
5454
}
5555

5656
func Benchmark_len(b *testing.B) {
57-
env := map[string]interface{}{
57+
env := map[string]any{
5858
"arr": make([]int, 100),
5959
}
6060

6161
program, err := expr.Compile(`len(arr)`, expr.Env(env))
6262
require.NoError(b, err)
6363

64-
var out interface{}
64+
var out any
6565
b.ResetTimer()
6666
for n := 0; n < b.N; n++ {
6767
out, err = vm.Run(program, env)
@@ -86,15 +86,15 @@ func Benchmark_filter(b *testing.B) {
8686
program, err := expr.Compile(`filter(Ints, # % 7 == 0)`, expr.Env(Env{}))
8787
require.NoError(b, err)
8888

89-
var out interface{}
89+
var out any
9090
b.ResetTimer()
9191
for n := 0; n < b.N; n++ {
9292
out, err = vm.Run(program, env)
9393
}
9494
b.StopTimer()
9595

9696
require.NoError(b, err)
97-
require.Len(b, out.([]interface{}), 142)
97+
require.Len(b, out.([]any), 142)
9898
}
9999

100100
func Benchmark_filterLen(b *testing.B) {
@@ -111,7 +111,7 @@ func Benchmark_filterLen(b *testing.B) {
111111
program, err := expr.Compile(`len(filter(Ints, # % 7 == 0))`, expr.Env(Env{}))
112112
require.NoError(b, err)
113113

114-
var out interface{}
114+
var out any
115115
b.ResetTimer()
116116
for n := 0; n < b.N; n++ {
117117
out, err = vm.Run(program, env)
@@ -136,7 +136,7 @@ func Benchmark_filterFirst(b *testing.B) {
136136
program, err := expr.Compile(`filter(Ints, # % 7 == 0)[0]`, expr.Env(Env{}))
137137
require.NoError(b, err)
138138

139-
var out interface{}
139+
var out any
140140
b.ResetTimer()
141141
for n := 0; n < b.N; n++ {
142142
out, err = vm.Run(program, env)
@@ -161,7 +161,7 @@ func Benchmark_filterLast(b *testing.B) {
161161
program, err := expr.Compile(`filter(Ints, # % 7 == 0)[-1]`, expr.Env(Env{}))
162162
require.NoError(b, err)
163163

164-
var out interface{}
164+
var out any
165165
b.ResetTimer()
166166
for n := 0; n < b.N; n++ {
167167
out, err = vm.Run(program, env)
@@ -187,20 +187,20 @@ func Benchmark_filterMap(b *testing.B) {
187187
program, err := expr.Compile(`map(filter(Ints, # % 7 == 0), # * 2)`, expr.Env(Env{}))
188188
require.NoError(b, err)
189189

190-
var out interface{}
190+
var out any
191191
b.ResetTimer()
192192
for n := 0; n < b.N; n++ {
193193
out, err = vm.Run(program, env)
194194
}
195195
b.StopTimer()
196196

197197
require.NoError(b, err)
198-
require.Len(b, out.([]interface{}), 14)
199-
require.Equal(b, 14, out.([]interface{})[0])
198+
require.Len(b, out.([]any), 14)
199+
require.Equal(b, 14, out.([]any)[0])
200200
}
201201

202202
func Benchmark_arrayIndex(b *testing.B) {
203-
env := map[string]interface{}{
203+
env := map[string]any{
204204
"arr": make([]int, 100),
205205
}
206206
for i := 0; i < 100; i++ {
@@ -210,7 +210,7 @@ func Benchmark_arrayIndex(b *testing.B) {
210210
program, err := expr.Compile(`arr[50]`, expr.Env(env))
211211
require.NoError(b, err)
212212

213-
var out interface{}
213+
var out any
214214
b.ResetTimer()
215215
for n := 0; n < b.N; n++ {
216216
out, err = vm.Run(program, env)
@@ -234,7 +234,7 @@ func Benchmark_envStruct(b *testing.B) {
234234

235235
env := Env{Price: Price{Value: 1}}
236236

237-
var out interface{}
237+
var out any
238238
b.ResetTimer()
239239
for n := 0; n < b.N; n++ {
240240
out, err = vm.Run(program, env)
@@ -249,14 +249,14 @@ func Benchmark_envMap(b *testing.B) {
249249
type Price struct {
250250
Value int
251251
}
252-
env := map[string]interface{}{
252+
env := map[string]any{
253253
"price": Price{Value: 1},
254254
}
255255

256256
program, err := expr.Compile(`price.Value > 0`, expr.Env(env))
257257
require.NoError(b, err)
258258

259-
var out interface{}
259+
var out any
260260
b.ResetTimer()
261261
for n := 0; n < b.N; n++ {
262262
out, err = vm.Run(program, env)
@@ -272,7 +272,7 @@ type CallEnv struct {
272272
B int
273273
C int
274274
Fn func() bool
275-
FnFast func(...interface{}) interface{}
275+
FnFast func(...any) any
276276
Foo CallFoo
277277
}
278278

@@ -296,7 +296,7 @@ func Benchmark_callFunc(b *testing.B) {
296296

297297
env := CallEnv{}
298298

299-
var out interface{}
299+
var out any
300300
b.ResetTimer()
301301
for n := 0; n < b.N; n++ {
302302
out, err = vm.Run(program, env)
@@ -313,7 +313,7 @@ func Benchmark_callMethod(b *testing.B) {
313313

314314
env := CallEnv{}
315315

316-
var out interface{}
316+
var out any
317317
b.ResetTimer()
318318
for n := 0; n < b.N; n++ {
319319
out, err = vm.Run(program, env)
@@ -334,7 +334,7 @@ func Benchmark_callField(b *testing.B) {
334334
},
335335
}
336336

337-
var out interface{}
337+
var out any
338338
b.ResetTimer()
339339
for n := 0; n < b.N; n++ {
340340
out, err = vm.Run(program, env)
@@ -352,12 +352,12 @@ func Benchmark_callFast(b *testing.B) {
352352
}
353353

354354
env := CallEnv{
355-
FnFast: func(s ...interface{}) interface{} {
355+
FnFast: func(s ...any) any {
356356
return "fn_fast"
357357
},
358358
}
359359

360-
var out interface{}
360+
var out any
361361
b.ResetTimer()
362362
for n := 0; n < b.N; n++ {
363363
out, err = vm.Run(program, env)
@@ -374,7 +374,7 @@ func Benchmark_callConstExpr(b *testing.B) {
374374

375375
env := CallEnv{}
376376

377-
var out interface{}
377+
var out any
378378
b.ResetTimer()
379379
for n := 0; n < b.N; n++ {
380380
out, err = vm.Run(program, env)
@@ -396,7 +396,7 @@ func Benchmark_largeStructAccess(b *testing.B) {
396396

397397
env := Env{Field: 21}
398398

399-
var out interface{}
399+
var out any
400400
b.ResetTimer()
401401
for n := 0; n < b.N; n++ {
402402
out, err = vm.Run(program, &env)
@@ -421,7 +421,7 @@ func Benchmark_largeNestedStructAccess(b *testing.B) {
421421
env := Env{}
422422
env.Inner.Field = 21
423423

424-
var out interface{}
424+
var out any
425425
b.ResetTimer()
426426
for n := 0; n < b.N; n++ {
427427
out, err = vm.Run(program, &env)
@@ -443,7 +443,7 @@ func Benchmark_largeNestedArrayAccess(b *testing.B) {
443443
env := Env{}
444444
env.Data[0][0] = 1
445445

446-
var out interface{}
446+
var out any
447447
b.ResetTimer()
448448
for n := 0; n < b.N; n++ {
449449
out, err = vm.Run(program, &env)
@@ -455,14 +455,14 @@ func Benchmark_largeNestedArrayAccess(b *testing.B) {
455455
}
456456

457457
func Benchmark_sort(b *testing.B) {
458-
env := map[string]interface{}{
458+
env := map[string]any{
459459
"arr": []any{55, 58, 42, 61, 75, 52, 64, 62, 16, 79, 40, 14, 50, 76, 23, 2, 5, 80, 89, 51, 21, 96, 91, 13, 71, 82, 65, 63, 11, 17, 94, 81, 74, 4, 97, 1, 39, 3, 28, 8, 84, 90, 47, 85, 7, 56, 49, 93, 33, 12, 19, 60, 86, 100, 44, 45, 36, 72, 95, 77, 34, 92, 24, 73, 18, 38, 43, 26, 41, 69, 67, 57, 9, 27, 66, 87, 46, 35, 59, 70, 10, 20, 53, 15, 32, 98, 68, 31, 54, 25, 83, 88, 22, 48, 29, 37, 6, 78, 99, 30},
460460
}
461461

462462
program, err := expr.Compile(`sort(arr)`, expr.Env(env))
463463
require.NoError(b, err)
464464

465-
var out interface{}
465+
var out any
466466
b.ResetTimer()
467467
for n := 0; n < b.N; n++ {
468468
out, _ = vm.Run(program, env)
@@ -478,7 +478,7 @@ func Benchmark_sortBy(b *testing.B) {
478478
Value int
479479
}
480480
arr := []any{55, 58, 42, 61, 75, 52, 64, 62, 16, 79, 40, 14, 50, 76, 23, 2, 5, 80, 89, 51, 21, 96, 91, 13, 71, 82, 65, 63, 11, 17, 94, 81, 74, 4, 97, 1, 39, 3, 28, 8, 84, 90, 47, 85, 7, 56, 49, 93, 33, 12, 19, 60, 86, 100, 44, 45, 36, 72, 95, 77, 34, 92, 24, 73, 18, 38, 43, 26, 41, 69, 67, 57, 9, 27, 66, 87, 46, 35, 59, 70, 10, 20, 53, 15, 32, 98, 68, 31, 54, 25, 83, 88, 22, 48, 29, 37, 6, 78, 99, 30}
481-
env := map[string]interface{}{
481+
env := map[string]any{
482482
"arr": make([]Foo, len(arr)),
483483
}
484484
for i, v := range arr {
@@ -488,7 +488,7 @@ func Benchmark_sortBy(b *testing.B) {
488488
program, err := expr.Compile(`sortBy(arr, "Value")`, expr.Env(env))
489489
require.NoError(b, err)
490490

491-
var out interface{}
491+
var out any
492492
b.ResetTimer()
493493
for n := 0; n < b.N; n++ {
494494
out, _ = vm.Run(program, env)
@@ -503,7 +503,7 @@ func Benchmark_groupBy(b *testing.B) {
503503
program, err := expr.Compile(`groupBy(1..100, # % 7)[6]`)
504504
require.NoError(b, err)
505505

506-
var out interface{}
506+
var out any
507507
b.ResetTimer()
508508
for n := 0; n < b.N; n++ {
509509
out, _ = vm.Run(program, nil)

0 commit comments

Comments
 (0)