Skip to content

Commit c62a089

Browse files
committed
Dev: fix wrong getters signature for primitives
1 parent 5c8f0a6 commit c62a089

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

compiler/src/main/java/com/readdle/codegen/SwiftGetterDescriptor.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)