diff options
Diffstat (limited to 'testdata')
-rw-r--r-- | testdata/cgo/main.go | 9 | ||||
-rw-r--r-- | testdata/cgo/out.txt | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/testdata/cgo/main.go b/testdata/cgo/main.go index 1b810a565..aac5221f4 100644 --- a/testdata/cgo/main.go +++ b/testdata/cgo/main.go @@ -43,6 +43,7 @@ func main() { println("callback 1:", C.doCallback(20, 30, cb)) cb = C.binop_t(C.mul) println("callback 2:", C.doCallback(20, 30, cb)) + genericCallbackCall[int]() // variadic functions println("variadic0:", C.variadic0()) @@ -197,3 +198,11 @@ func printBitfield(bitfield *C.bitfield_t) { println("bitfield d:", bitfield.d) println("bitfield e:", bitfield.e) } + +type Int interface { + int | uint +} + +func genericCallbackCall[T Int]() { + println("callback inside generic function:", C.doCallback(20, 30, C.binop_t(C.add))) +} diff --git a/testdata/cgo/out.txt b/testdata/cgo/out.txt index d5f3b1379..781187b50 100644 --- a/testdata/cgo/out.txt +++ b/testdata/cgo/out.txt @@ -13,6 +13,7 @@ defined expr: 9 25: 25 callback 1: 50 callback 2: 600 +callback inside generic function: 50 variadic0: 1 variadic2: 15 headerfunc: 6 |