v2 / vlib / v / parser / tests / interface_mutability_receiver.vv
25 lines · 21 sloc · 499 bytes · 0c8ce3bcb9fd4a2e5bd5f991a5a07da976d780d7
Raw
1// fixes https://github.com/vlang/v/issues/1081 and https://github.com/vlang/v/issues/7338, code by https://github.com/nedpals
2// copied from https://github.com/vlang/v/issues/7338
3struct Doggo {
4pub mut:
5 name string
6}
7
8fn (mut d Doggo) set_name(name string) {
9 d.name = name
10}
11
12interface Animal {
13 set_name(name string)
14}
15
16fn set_animal_name(a Animal, name string) {
17 a.set_name(name)
18}
19
20fn main() {
21 dog := Doggo{'Doggo'}
22 println(dog.name)
23 set_animal_name(dog, 'Pupper')
24 println(dog.name)
25}
26