v2 / vlib / v / tests / structs / struct_transmute_test.v
42 lines · 38 sloc · 436 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1struct Foo {
2 age int
3 name string
4}
5
6// different order
7struct Bar {
8 name string
9 age int
10}
11
12fn test_order() {
13 f := Foo{
14 age: 4
15 name: 'f'
16 }
17 b := Bar{
18 ...f
19 }
20 assert b == Bar{'f', 4}
21 b2 := Bar{
22 ...f
23 name: 'b2'
24 }
25 assert b2.name == 'b2'
26 assert b2.age == 4
27}
28
29struct Qux {
30 name string
31 age int
32 extra bool
33}
34
35fn test_extra() {
36 f := Foo{4, 'f'}
37 q := Qux{
38 ...f
39 extra: true
40 }
41 assert q == Qux{'f', 4, true}
42}
43