v2 / vlib / v / tests / generics / generic_fn_infer_modifier_test.v
41 lines · 32 sloc · 545 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1fn f_array[T](a []T) T {
2 return a[0]
3}
4
5fn g_array[T](mut a []T) {
6 a[0] = a[1]
7}
8
9fn test_array() {
10 // []int
11 mut a1 := [7, 8]
12 r1 := f_array(a1)
13 assert r1 == 7
14
15 g_array(mut a1)
16 assert a1[0] == 8
17
18 // []f64
19 mut a2 := [1.1, 2.2]
20 r2 := f_array(a2)
21 assert r2 == 1.1
22
23 g_array(mut a2)
24 assert a2[0] == 2.2
25
26 // []string
27 mut a3 := ['aa', 'bb']
28 r3 := f_array(a3)
29 assert r3 == 'aa'
30
31 g_array(mut a3)
32 assert a3[0] == 'bb'
33
34 // []bool
35 mut a4 := [true, false]
36 r4 := f_array(a4)
37 assert r4 == true
38
39 g_array(mut a4)
40 assert a4[0] == false
41}
42