v4 / vlib / v / tests / fns / fn_var_name_using_reserved_test.v
35 lines · 30 sloc · 568 bytes · ac52d8ad822519455c5d30f05b2695a0b65691b9
Raw
1fn ret_int() fn (int) int {
2 return fn (i int) int {
3 return i
4 }
5}
6
7fn test_fn_var_name_using_reserved() {
8 new := ret_int()
9 println(new(42))
10 assert new(42) == 42
11}
12
13fn call_fn(do fn () int) int {
14 return do()
15}
16
17// https://github.com/vlang/v/issues/27109
18fn test_reserved_name_as_fn_param_and_call_arg() {
19 do := fn () int {
20 return -1
21 }
22 assert call_fn(do) == -1
23}
24
25fn call_result_fn(do fn () !int) !int {
26 return do()!
27}
28
29fn test_reserved_name_as_result_fn_param_and_call_arg() {
30 do := fn () !int {
31 return -1
32 }
33 r := call_result_fn(do)!
34 assert r == -1
35}
36