1package main 2 3import "swigtests/director_detect" 4 5type MyBar struct { 6 val int 7} // From director_detect.Bar 8 9func NewMyBar() director_detect.Bar { 10 return director_detect.NewDirectorBar(&MyBar{2}) 11} 12 13func (p *MyBar) Get_value() int { 14 p.val++ 15 return p.val 16} 17 18func (p *MyBar) Get_class() director_detect.A { 19 p.val++ 20 return director_detect.NewA() 21} 22 23func (p *MyBar) Just_do_it() { 24 p.val++ 25} 26 27func (p *MyBar) Clone() director_detect.Bar { 28 return director_detect.NewDirectorBar(&MyBar{p.val}) 29} 30 31func main() { 32 b := NewMyBar() 33 34 f := b.Baseclass() 35 36 v := f.Get_value() 37 _ = f.Get_class() 38 f.Just_do_it() 39 40 c := b.DirectorInterface().(*MyBar).Clone() 41 vc := c.Get_value() 42 43 if (v != 3) || (b.DirectorInterface().(*MyBar).val != 5) || (vc != 6) { 44 panic("Bad virtual detection") 45 } 46} 47