v2 / vlib / v / tests / options / option_cast_primitive_test.v
35 lines · 30 sloc · 449 bytes · 7faf1bf1d9aa0f5760163c2539521af51847b292
Raw
1module main
2
3type Float = f32
4
5struct Note {
6mut:
7 seen string
8}
9
10fn (mut n Note) bad_call(value ?Float) {
11 if val := value {
12 n.seen += ', ${val}'
13 }
14}
15
16fn (mut n Note) good_call(value ?f32) {
17 if val := value {
18 n.seen += ', ${val}'
19 }
20}
21
22fn test_main() {
23 mut good := Note{}
24 mut bad := Note{}
25 mut c := 0
26 for {
27 good.good_call(f32(c))
28 bad.bad_call(Float(c))
29 c += 1
30 if c >= 5 {
31 break
32 }
33 }
34 assert '${good.seen}' == '${bad.seen}'
35}
36