@@ -49,6 +49,7 @@ final class FuncCallbackImportTests {
4949
5050 public func callMeIntUnaryOperator(callback: (Int32) -> Int32)
5151 public func callMeLongUnaryOperator(callback: (Int64) -> Int64)
52+ public func callMeDoubleUnaryOperator(callback: (Double) -> Double)
5253
5354 public func callMeIntBinaryOperator(callback: (Int32, Int32) -> Int32)
5455 public func callMeLongBinaryOperator(callback: (Int64, Int64) -> Int64)
@@ -810,6 +811,49 @@ final class FuncCallbackImportTests {
810811 )
811812 }
812813
814+ @Test ( " Import: public func callMecallMeDoubleUnaryOperatorFunc(callback: (Double) -> Double) " )
815+ func func_callMecallMeDoubleUnaryOperatorFunc_callback( ) throws {
816+ var config = Configuration ( )
817+ config. swiftModule = " __FakeModule "
818+ let st = makeSwiftJavaAnalyzer ( config: config)
819+ st. log. logLevel = . error
820+
821+ try st. analyze ( path: " Fake.swift " , text: Self . class_interfaceFile)
822+
823+ let funcDecl = st. extractedGlobalFuncs. first { $0. name == " callMeDoubleUnaryOperator " } !
824+
825+ let generator = FFMSwift2JavaGenerator (
826+ config: config,
827+ translator: st,
828+ javaPackage: " com.example.swift " ,
829+ swiftOutputDirectory: " /fake " ,
830+ javaOutputDirectory: " /fake "
831+ )
832+
833+ let output = JavaPrinter . toString { printer in
834+ generator. printFunctionDowncallMethods ( & printer, funcDecl)
835+ }
836+
837+ assertOutput (
838+ output,
839+ expectedChunks: [
840+ """
841+ /**
842+ * Downcall to Swift:
843+ * {@snippet lang=swift :
844+ * public func callMeDoubleUnaryOperator(callback: (Double) -> Double)
845+ * }
846+ */
847+ public static void callMeDoubleUnaryOperator(java.util.function.DoubleUnaryOperator callback) {
848+ try(var arena$ = Arena.ofConfined()) {
849+ swiftjava___FakeModule_callMeDoubleUnaryOperator_callback.call(callMeDoubleUnaryOperator.$toUpcallStub(callback, arena$));
850+ }
851+ }
852+ """
853+ ]
854+ )
855+ }
856+
813857 @Test ( " Import: public func callMecallMeIntBinaryOperatorFunc(callback: (Int32, Int32) -> Int32) " )
814858 func func_callMecallMeIntBinaryOperatorFunc_callback( ) throws {
815859 var config = Configuration ( )
0 commit comments