47 lines
785 B
Go
47 lines
785 B
Go
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")
|
|
}
|
|
}
|