v4 / vlib / v / tests / interfaces / interface_mut_value_update_test.v
34 lines · 31 sloc · 386 bytes · bdfd0085bcef0051edf90ce6188b10df0bb6f196
Raw
1interface Value {}
2
3struct Foo {
4mut:
5 value int
6}
7
8fn test_main() {
9 mut i := 0
10 mut integers := []Value{}
11 integers << i
12 i = 1
13 integers << i
14 i = 2
15 integers << i
16 assert integers == [0, 1, 2]
17
18 mut f := Foo{
19 value: 0
20 }
21 mut foos := []Foo{}
22 foos << f
23 f.value = 1
24 foos << f
25 f.value = 2
26 foos << f
27 assert foos == [Foo{
28 value: 0
29 }, Foo{
30 value: 1
31 }, Foo{
32 value: 2
33 }]
34}
35