| package main |
| |
| import "swigtests/director_detect" |
| |
| type MyBar struct { |
| val int |
| } // From director_detect.Bar |
| |
| func NewMyBar() director_detect.Bar { |
| return director_detect.NewDirectorBar(&MyBar{2}) |
| } |
| |
| func (p *MyBar) Get_value() int { |
| p.val++ |
| return p.val |
| } |
| |
| func (p *MyBar) Get_class() director_detect.A { |
| p.val++ |
| return director_detect.NewA() |
| } |
| |
| func (p *MyBar) Just_do_it() { |
| p.val++ |
| } |
| |
| func (p *MyBar) Clone() director_detect.Bar { |
| return director_detect.NewDirectorBar(&MyBar{p.val}) |
| } |
| |
| func main() { |
| b := NewMyBar() |
| |
| f := b.Baseclass() |
| |
| v := f.Get_value() |
| _ = f.Get_class() |
| f.Just_do_it() |
| |
| c := b.DirectorInterface().(*MyBar).Clone() |
| vc := c.Get_value() |
| |
| if (v != 3) || (b.DirectorInterface().(*MyBar).val != 5) || (vc != 6) { |
| panic("Bad virtual detection") |
| } |
| } |