From 5271f8d4a17626db669e5b426a70aecf5f8ed6be Mon Sep 17 00:00:00 2001 From: mappu Date: Sat, 7 Dec 2024 14:18:47 +1300 Subject: [PATCH] genbindings: panic when trying to override methods on non-subclass --- cmd/genbindings/emitgo.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmd/genbindings/emitgo.go b/cmd/genbindings/emitgo.go index b7e14801..769ff3dd 100644 --- a/cmd/genbindings/emitgo.go +++ b/cmd/genbindings/emitgo.go @@ -1028,6 +1028,9 @@ import "C" goCbType += `) ` + m.ReturnType.renderReturnTypeGo(&gfs) ret.WriteString(`func (this *` + goClassName + `) On` + m.SafeMethodName() + `(slot ` + goCbType + `) { + if ! this.isSubclass { + panic("miqt: can only override virtual methods for directly constructed types") + } C.` + goClassName + `_override_virtual_` + m.SafeMethodName() + `(unsafe.Pointer(this.h), C.intptr_t(cgo.NewHandle(slot)) ) }