v2 / vlib / v / tests / comptime / comptime_for_map_arg_test.v
33 lines · 32 sloc · 351 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1fn merged[K, V](a map[K]V, b map[K]V) map[K]V {
2 mut o := a.clone()
3 for k, v in b {
4 $if V is $map {
5 o[k] = merged(o[k], v)
6 } $else {
7 o[k] = v
8 }
9 }
10 return o
11}
12
13fn test_main() {
14 a := {
15 'aa': {
16 '11': 1
17 }
18 }
19 b := {
20 'bb': {
21 '22': 2
22 }
23 }
24 c := merged(a, b)
25 assert c == {
26 'aa': {
27 '11': 1
28 }
29 'bb': {
30 '22': 2
31 }
32 }
33}
34