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;";
         }

Reply via email to