v/vlib/v/tests/as_cast_already_smartcast_s...

31 lines
463 B
V

struct S1 {
s1 string = 'abc'
}
struct Empty {
}
type Sum = Empty | S1
fn test_as_cast_already_smartcast_sumtype() {
a := Sum(S1{})
if a is S1 {
println('if expr: $a.s1')
assert a.s1 == 'abc'
v1 := a as S1
println('if expr (as cast): $v1.s1')
assert v1.s1 == 'abc'
}
match a {
S1 {
println('match expr: $a.s1')
assert a.s1 == 'abc'
v1 := a as S1
println('match expr (as cast): $v1.s1')
assert v1.s1 == 'abc'
}
else {}
}
}