@@ -62,7 +62,10 @@ public void generateCode(SwiftWriter swiftWriter, String javaFullName, String sw
6262
6363 String retType = "" ;
6464 if (returnSwiftType != null ) {
65- retType = " -> " + returnSwiftType .javaSigType (isReturnTypeOptional ) + "?" ;
65+ retType = " -> " + returnSwiftType .javaSigType (isReturnTypeOptional );
66+ if (isReturnTypeOptional || !returnSwiftType .isPrimitiveType ()) {
67+ retType += "?" ;
68+ }
6669 }
6770
6871 swiftWriter .emit (String .format (")%s {\n " , retType ));
@@ -75,7 +78,12 @@ public void generateCode(SwiftWriter swiftWriter, String javaFullName, String sw
7578 swiftWriter .emitStatement ("}" );
7679 swiftWriter .emitStatement ("catch {" );
7780 Utils .handleRuntimeError (swiftWriter );
78- swiftWriter .emitStatement (String .format ("return%s" , returnSwiftType != null ? " nil" : "" ));
81+ if (!isReturnTypeOptional && returnSwiftType .isPrimitiveType ()) {
82+ swiftWriter .emitStatement ("return " + returnSwiftType .primitiveDefaultValue ());
83+ }
84+ else {
85+ swiftWriter .emitStatement ("return nil" );
86+ }
7987 swiftWriter .emitStatement ("}" );
8088 }
8189
@@ -96,7 +104,12 @@ public void generateCode(SwiftWriter swiftWriter, String javaFullName, String sw
96104 swiftWriter .emitStatement ("}" );
97105 swiftWriter .emitStatement ("catch {" );
98106 Utils .handleRuntimeError (swiftWriter );
99- swiftWriter .emitStatement ("return nil" );
107+ if (!isReturnTypeOptional && returnSwiftType .isPrimitiveType ()) {
108+ swiftWriter .emitStatement ("return " + returnSwiftType .primitiveDefaultValue ());
109+ }
110+ else {
111+ swiftWriter .emitStatement ("return nil" );
112+ }
100113 swiftWriter .emitStatement ("}" );
101114 }
102115
0 commit comments