1
0
Fork 0

Fix signal @convention(c) missing -> Void return type

This commit is contained in:
Brendan Szymanski 2026-07-01 17:28:36 -04:00
parent 27edea19af
commit 39f0d97269
2 changed files with 21 additions and 2 deletions

View file

@ -20,3 +20,22 @@ func testSignalWithParams() {
#expect(connection.contains("_: Int32"))
#expect(connection.contains("g_signal_connect_data"))
}
@Test("Non-inhibit signal generates correct @convention(c) with -> Void")
func testNonInhibitSignalConnection() {
let signal = Signal(name: "clicked", parameters: [], returnType: .void)
let code = CodeGenerator.generateSignalConnection(signal: signal, inhibit: false)
#expect(code.contains("-> Void"))
#expect(code.contains("@convention(c) (UnsafeMutableRawPointer?, UnsafeMutableRawPointer?) -> Void"))
}
@Test("Parameterized non-inhibit signal generates correct @convention(c)")
func testParameterizedNonInhibitSignalConnection() {
let signal = Signal(name: "size-allocate", parameters: [
Parameter(name: "width", type: .int32),
Parameter(name: "height", type: .int32),
], returnType: .void)
let code = CodeGenerator.generateSignalConnection(signal: signal, inhibit: false)
#expect(code.contains("-> Void"))
#expect(code.contains("@convention(c) (UnsafeMutableRawPointer?, UnsafeMutableRawPointer?, UnsafeMutableRawPointer?) -> Void"))
}