vxx2 / vlib / v / checker / tests / option_propagate_nested.vv
31 lines · 25 sloc · 331 bytes · 17000ef7b67f9bde4592d3b5ae032eac7ac19c32
Raw
1fn ret(s string) string {
2 return s
3}
4
5fn raise() ?string {
6 return none
7}
8
9fn xx_prop() string {
10 s := ret(raise()?)
11 return s
12}
13
14struct St {
15mut:
16 z f64
17}
18
19fn (mut s St) raise() !f64 {
20 return error('some error')
21}
22
23fn retf(f f64) f64 {
24 return f
25}
26
27fn (mut s St) aa_propagate() {
28 f := retf(s.raise()!)
29 s.z = 7.5
30 println(f)
31}
32