This is an automated email from the ASF dual-hosted git repository. joshtynjala pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 841d8c94efd6388d004692bb12a4da341998c88a Author: Josh Tynjala <[email protected]> AuthorDate: Wed Mar 26 10:05:33 2025 -0700 externc: fix some warnings for bad return values that don't match the type --- .../codegen/typedefs/reference/FieldReference.java | 18 +++++++++++++++++- .../codegen/typedefs/reference/MethodReference.java | 8 +++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/FieldReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/FieldReference.java index 95c35ad9b..5b146dcfc 100644 --- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/FieldReference.java +++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/FieldReference.java @@ -145,13 +145,29 @@ public class FieldReference extends MemberReference String staticValue = (isStatic) ? "static " : ""; String isPublic = isInterface ? "" : "public "; - String getBody = isInterface ? "" : "{ return null; }"; String setBody = isInterface ? "" : "{}"; String type = toTypeString(); if (type.contains("|") || type.contains("?")) type = "*"; + String getBody = ""; + if (!isInterface) + { + if (type.equals("Boolean")) + getBody = "{ return false; }"; + else if (type.equals("int")) + getBody = "{ return 0; }"; + else if (type.equals("Number")) + getBody = "{ return 0; }"; + else if (type.equals("String")) + getBody = "{ return null; }"; + else if (type.equals("uint")) + getBody = "{ return 0; }"; + else + getBody = "{ return null; }"; + } + if (outputJS) { sb.append(getClassReference().getPackageName()); diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/MethodReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/MethodReference.java index df02449be..faa10f8b0 100644 --- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/MethodReference.java +++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/MethodReference.java @@ -199,10 +199,16 @@ public class MethodReference extends MemberReference String returnString = transformReturnString(); if (!returnString.equals("void")) { - if (returnString.equals("Number")) + if (returnString.equals("Boolean")) + returns = "return false;"; + else if (returnString.equals("int")) + returns = "return 0;"; + else if (returnString.equals("Number")) returns = "return 0;"; else if (returnString.equals("String")) returns = "return '';"; + else if (returnString.equals("uint")) + returns = "return 0;"; else returns = " return null;"; }
