v/vlib/v/tests/option_if_assign_and_fallth...

47 lines
749 B
V

fn err_call(ok bool) ?int {
if ok {
return 42
}
return error('Not ok!')
}
fn test_if_opt() {
if val := err_call(true) {
eprintln(' val should be available here: $val')
assert val == 42
}
assert true
}
fn test_simple_else_if_guard() {
if false {
assert false
} else if val := err_call(true) {
assert val == 42
} else {
assert false
}
}
fn test_multiple_else_if_guard() {
if _ := err_call(false) {
assert false
} else if val := err_call(false) {
assert val == 0 // assert false
} else if val := err_call(true) {
assert val == 42
} else {
assert false
}
}
fn test_opt_with_fall_through() {
mut x := 1
err_call(false) or {
eprintln(' this *should* be an error: $err')
x++
assert true
}
assert x == 2
}