v2 / vlib / v / checker / tests / shared_element_lock.vv
46 lines · 42 sloc · 507 bytes · 0c8ce3bcb9fd4a2e5bd5f991a5a07da976d780d7
Raw
1struct Person {
2mut:
3 name string
4 age int
5}
6
7struct Pet {
8mut:
9 name string
10 color int
11}
12
13struct Programmer {
14mut:
15 pers Person
16 pe shared Pet
17}
18
19struct Pro {
20mut:
21 pers Person
22 pe Pet
23}
24
25fn main() {
26 mut pr := Programmer{
27 pers: Person{
28 name: 'Qwe'
29 age: 44
30 }
31 pe: Pet{
32 name: 'Ghj'
33 color: 7
34 }
35 }
36 pr.pe.color = 3
37 shared y := pr.pe
38 rlock y {
39 println(y.color)
40 }
41 shared g := Pro{}
42 g.pers.age = 42
43 mut h := []shared Pro{len: 3}
44 h[2].pers.age = 42
45 println(h[2].pers.age)
46}
47