diff --git a/Sources/CodePrinting/CodePrinter.swift b/Sources/CodePrinting/CodePrinter.swift index 4d91c884b..1fa3db8dd 100644 --- a/Sources/CodePrinting/CodePrinter.swift +++ b/Sources/CodePrinting/CodePrinter.swift @@ -134,6 +134,17 @@ public struct CodePrinter: Sendable { try printBraceBlock("if (\(condition))", function: function, file: file, line: line, body: body) } + /// Print a Swift `guard else { … }` block. + public mutating func printGuardBlock( + _ condition: Any, + function: String = #function, + file: String = #fileID, + line: UInt = #line, + body: (inout CodePrinter) throws -> Void + ) rethrows { + try printBraceBlock("guard \(condition) else", function: function, file: file, line: line, body: body) + } + public mutating func printParts( _ parts: String..., terminator: PrinterTerminator = .newLine, diff --git a/Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+SwiftThunkPrinting.swift b/Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+SwiftThunkPrinting.swift index 21063d3dc..71c30cb8a 100644 --- a/Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+SwiftThunkPrinting.swift +++ b/Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+SwiftThunkPrinting.swift @@ -602,7 +602,7 @@ extension JNISwift2JavaGenerator { printer.print("#if _pointerBitWidth(_32)") for check in int32OverflowChecks { - printer.printBraceBlock("guard \(check) else") { printer in + printer.printGuardBlock(check) { printer in printer.print("environment.throwJavaException(javaException: .integerOverflow)") printer.print(dummyReturn(for: nativeSignature)) }