v/vlib/v/checker/tests/shared_element_lock.vv

47 lines
509 B
V

struct Person {
mut:
name string
age int
}
struct Pet {
mut:
name string
color int
}
struct Programmer {
mut:
pers Person
pe shared Pet
}
struct Pro {
mut:
pers Person
pe Pet
}
fn main() {
mut pr := Programmer{
pers: Person{
name: 'Qwe'
age: 44
}
pe: Pet{
name: 'Ghj'
color: 7
}
}
pr.pe.color = 3
shared y := pr.pe
rlock y {
println(y.color)
}
shared g := Pro{}
g.pers.age = 42
mut h := []shared Pro{len: 3}
h[2].pers.age = 42
println(h[2].pers.age)
}