@@ -99,7 +99,10 @@ public void generateCode(SwiftWriter swiftWriter, String javaFullName, String sw
9999
100100 String retType = "" ;
101101 if (returnSwiftType != null ) {
102- retType = " -> " + returnSwiftType .javaSigType (isReturnTypeOptional ) + "?" ;
102+ retType = " -> " + returnSwiftType .javaSigType (isReturnTypeOptional );
103+ if (isReturnTypeOptional || !returnSwiftType .isPrimitiveType ()) {
104+ retType += "?" ;
105+ }
103106 }
104107
105108 swiftWriter .emit (String .format (")%s {\n " , retType ));
@@ -143,7 +146,17 @@ else if (param.isOptional) {
143146 swiftWriter .emitStatement ("}" );
144147 swiftWriter .emitStatement ("catch {" );
145148 Utils .handleRuntimeError (swiftWriter );
146- swiftWriter .emitStatement (String .format ("return%s" , returnSwiftType != null ? " nil" : "" ));
149+ if (returnSwiftType == null ) {
150+ swiftWriter .emitStatement ("return" );
151+ }
152+ else {
153+ if (!isReturnTypeOptional && returnSwiftType .isPrimitiveType ()) {
154+ swiftWriter .emitStatement ("return " + returnSwiftType .primitiveDefaultValue ());
155+ }
156+ else {
157+ swiftWriter .emitStatement ("return nil" );
158+ }
159+ }
147160 swiftWriter .emitStatement ("}" );
148161 }
149162
@@ -192,15 +205,30 @@ else if (param.isOptional) {
192205 swiftWriter .emitStatement ("}" );
193206 swiftWriter .emitStatement ("catch {" );
194207 Utils .handleRuntimeError (swiftWriter );
195- swiftWriter .emitStatement ("return nil" );
208+ if (!isReturnTypeOptional && returnSwiftType .isPrimitiveType ()) {
209+ swiftWriter .emitStatement ("return " + returnSwiftType .primitiveDefaultValue ());
210+ }
211+ else {
212+ swiftWriter .emitStatement ("return nil" );
213+ }
196214 swiftWriter .emitStatement ("}" );
197215 }
198216
199217 if (isThrown ) {
200218 swiftWriter .emitStatement ("}" );
201219 swiftWriter .emitStatement ("catch {" );
202220 Utils .handleError (swiftWriter );
203- swiftWriter .emitStatement (String .format ("return%s" , returnSwiftType != null ? " nil" : "" ));
221+ if (returnSwiftType == null ) {
222+ swiftWriter .emitStatement ("return" );
223+ }
224+ else {
225+ if (!isReturnTypeOptional && returnSwiftType .isPrimitiveType ()) {
226+ swiftWriter .emitStatement ("return " + returnSwiftType .primitiveDefaultValue ());
227+ }
228+ else {
229+ swiftWriter .emitStatement ("return nil" );
230+ }
231+ }
204232 swiftWriter .emitStatement ("}" );
205233 }
206234
0 commit comments