v / cmd / v2 / test_sumtype4.v
38 lines · 33 sloc · 401 bytes · 388caee862d59ec9a34395423127ad9e9e5122aa
Raw
1struct Ident {
2 name string
3 line int
4 col int
5}
6
7struct Literal {
8 value string
9}
10
11type Expr = Ident | Literal
12
13fn make_ident() Ident {
14 return Ident{
15 name: 'foo'
16 line: 42
17 col: 10
18 }
19}
20
21fn wrap_expr() Expr {
22 i := make_ident()
23 return i
24}
25
26fn main() {
27 e := wrap_expr()
28 match e {
29 Ident {
30 println(e.name)
31 println(e.line)
32 println(e.col)
33 }
34 Literal {
35 println(e.value)
36 }
37 }
38}
39