I'm trying to build https://github.com/pion/webrtc with gomobile but I'm running into this error. To reproduce, clone and then run gomobile bind .
gobind/go_webrtcmain.go:86:19: cannot use (*proxywebrtc_TrackLocal)(_param_track_ref) (value of type *proxywebrtc_TrackLocal) as webrtc.TrackLocal value in assignment: *proxywebrtc_TrackLocal does not implement webrtc.TrackLocal (missing method Bind) Specifically, I've tracked it down to this function signature: https://github.com/pion/webrtc/blob/master/rtpsender.go#L61 where it seems like gobind generates some code that looks like: func proxywebrtc_API_NewRTPSender(refnum C.int32_t, param_track C.int32_t, param_transport C.int32_t) (C.int32_t, C.int32_t) { ref := _seq.FromRefNum(int32(refnum)) v := ref.Get().(*webrtc.API) var _param_track webrtc.TrackLocal _param_track_ref := _seq.FromRefNum(int32(param_track)) if _param_track_ref != nil { if param_track < 0 { // go object _param_track = _param_track_ref.Get().(webrtc.TrackLocal) } else { // foreign object _param_track = (*proxywebrtc_TrackLocal)(_param_track_ref) } } A little bit up, it seems that it's indeed creating a proxy TrackLocal type but doesn't implement the interface completely type proxywebrtc_TrackLocal _seq.Ref func (p *proxywebrtc_TrackLocal) Bind_proxy_refnum__() int32 { return (*_seq.Ref)(p).Bind_IncNum() } // skipped method TrackLocal.Bind with unsupported parameter or result types So I'm not surprised this can't be assigned. I guess the consequence is that this API can't be bound? Is it possible to have gobind skip the non-working functions with a comment or something? I'm not sure why gobind doesn't reject the API and instead crashes. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/a8351e46-9595-4693-bc6c-03f52ec1a945n%40googlegroups.com.