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 8049d70b3050bc88a9b987038c456cf19dc0d91c
Author: Josh Tynjala <[email protected]>
AuthorDate: Tue May 25 14:57:30 2021 -0700

    BindingInfo: fixed that destination string was missing this. when binding 
directly to MXML primitives like Array/String/Number
---
 .../internal/codegen/databinding/BindingInfo.java  | 26 ++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git 
a/compiler/src/main/java/org/apache/royale/compiler/internal/codegen/databinding/BindingInfo.java
 
b/compiler/src/main/java/org/apache/royale/compiler/internal/codegen/databinding/BindingInfo.java
index d312941..fc907de 100644
--- 
a/compiler/src/main/java/org/apache/royale/compiler/internal/codegen/databinding/BindingInfo.java
+++ 
b/compiler/src/main/java/org/apache/royale/compiler/internal/codegen/databinding/BindingInfo.java
@@ -303,14 +303,36 @@ public class BindingInfo implements 
Comparable<BindingInfo>
             // We are an MXML primitive (like sf:String), so the dest string 
is just our ID
             String id = ((IMXMLExpressionNode)parent).getEffectiveID();
             assert id != null;
-            destString = id;
+
+            IMXMLClassReferenceNode propertyParent = (IMXMLClassReferenceNode)
+                    parent.getAncestorOfType(IMXMLClassReferenceNode.class);  
+            assert propertyParent != null;
+            if (propertyParent instanceof IMXMLClassDefinitionNode)
+            {
+                destString = "this." + id;
+            }
+            else
+            {
+                destString = id;
+            }
         }
         else if (parent instanceof IMXMLArrayNode)
         {
             // We are an MXML primitive, so the dest string is just our ID
             String id = ((IMXMLArrayNode)parent).getEffectiveID();
             assert id != null;
-            destString = id;
+
+            IMXMLClassReferenceNode propertyParent = (IMXMLClassReferenceNode)
+                    parent.getAncestorOfType(IMXMLClassReferenceNode.class);  
+            assert propertyParent != null;
+            if (propertyParent instanceof IMXMLClassDefinitionNode)
+            {
+                destString = "this." + id;
+            }
+            else
+            {
+                destString = id;
+            }
         }
         else if (parent instanceof IMXMLModelPropertyNode)
         {

Reply via email to