// fixes https://github.com/vlang/v/issues/1081 and https://github.com/vlang/v/issues/7338, code by https://github.com/nedpals
//   copied from https://github.com/vlang/v/issues/7338
struct Doggo {
pub mut:
	name string
}

fn (mut d Doggo) set_name(name string) {
	d.name = name
}

interface Animal {
	set_name(name string)
}

fn set_animal_name(a Animal, name string) {
	a.set_name(name)
}

fn main() {
	dog := Doggo{'Doggo'}
	println(dog.name)
	set_animal_name(dog, 'Pupper')
	println(dog.name)
}
