@@ -99,7 +99,10 @@ public void generateCode(SwiftWriter swiftWriter, String javaFullName, String sw
99
99
100
100
String retType = "" ;
101
101
if (returnSwiftType != null ) {
102
- retType = " -> " + returnSwiftType .javaSigType (isReturnTypeOptional ) + "?" ;
102
+ retType = " -> " + returnSwiftType .javaSigType (isReturnTypeOptional );
103
+ if (isReturnTypeOptional || !returnSwiftType .isPrimitiveType ()) {
104
+ retType += "?" ;
105
+ }
103
106
}
104
107
105
108
swiftWriter .emit (String .format (")%s {\n " , retType ));
@@ -143,7 +146,17 @@ else if (param.isOptional) {
143
146
swiftWriter .emitStatement ("}" );
144
147
swiftWriter .emitStatement ("catch {" );
145
148
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
+ }
147
160
swiftWriter .emitStatement ("}" );
148
161
}
149
162
@@ -192,15 +205,30 @@ else if (param.isOptional) {
192
205
swiftWriter .emitStatement ("}" );
193
206
swiftWriter .emitStatement ("catch {" );
194
207
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
+ }
196
214
swiftWriter .emitStatement ("}" );
197
215
}
198
216
199
217
if (isThrown ) {
200
218
swiftWriter .emitStatement ("}" );
201
219
swiftWriter .emitStatement ("catch {" );
202
220
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
+ }
204
232
swiftWriter .emitStatement ("}" );
205
233
}
206
234
0 commit comments