v2 / vlib / v / tests / comptime / comptime_if_is_test.v
35 lines · 31 sloc · 407 bytes · 44a49755047720bc73176a83f19b348d341d6b68
Raw
1fn f[T]() int {
2 $if T is int {
3 return 1
4 }
5 $if T !is int {
6 return -1
7 }
8 assert false
9 return 0
10}
11
12fn test_generic_is() {
13 assert f[int]() == 1
14 assert f[bool]() == -1
15}
16
17fn g[T](t T) int {
18 $if T is u8 || T is i8 {
19 return 1
20 }
21 return 2
22}
23
24fn test_is_or() {
25 assert g(u8(1)) == 1
26 assert g(i8(1)) == 1
27 assert g(1) == 2
28}
29
30fn test_i32_is_int() {
31 a := i32(33)
32 $if a !is $int {
33 assert false
34 }
35}
36