v2 / vlib / v / tests / generics / generics_fn_variable_2_test.v
38 lines · 33 sloc · 416 bytes · dddbacb1960b838b75532443d7ed24328d85daa7
Raw
1fn g[T]() u32 {
2 return sizeof(T)
3}
4
5fn f[T]() u32 {
6 p := g[T]
7 return p()
8}
9
10fn test_generic_fn_variable() {
11 r1 := f[int]()
12 println(r1)
13 assert r1 == $if new_int ? && x64 {
14 8
15 } $else {
16 4
17 }
18
19 r2 := f[string]()
20 println(r2)
21 assert r2 == $if x64 {
22 $if new_int ? {
23 24
24 } $else {
25 16
26 }
27 } $else {
28 12
29 }
30
31 r3 := f[f64]()
32 println(r3)
33 assert r3 == 8
34
35 r4 := f[bool]()
36 println(r4)
37 assert r4 == 1
38}
39