v2 / vlib / v / tests / concurrency / mut_receiver_gowrapper_test.v
37 lines · 32 sloc · 514 bytes · 0f58a02c1416429dcfb3ca26289e720380f8cc42
Raw
1module main
2
3@[heap]
4interface IGameObject {
5mut:
6 name string
7 parent ?&IGameObject
8 children []&IGameObject
9 advance()
10}
11
12@[heap]
13struct GameObject implements IGameObject {
14mut:
15 name string
16 parent ?&IGameObject
17 children []&IGameObject
18}
19
20struct Ship implements IGameObject {
21 GameObject
22 speed f32
23}
24
25fn (mut gameobject GameObject) advance() {
26 for mut child in gameobject.children {
27 go child.advance()
28 }
29}
30
31fn test_main() {
32 mut ship := &Ship{
33 name: 'ship'
34 }
35 ship.advance()
36 assert true
37}
38