You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2019/02/04 18:37:37 UTC
[royale-compiler] 03/03: compiler-jx: coercion on assignment also
applies to member and static variables of a class (references #74)
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 6b475f70d7897032dff93b66ae1cd967d1f2ce52
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Mon Feb 4 10:37:06 2019 -0800
compiler-jx: coercion on assignment also applies to member and static variables of a class (references #74)
---
.../royale/compiler/internal/codegen/js/jx/ClassEmitter.java | 2 +-
.../royale/compiler/internal/codegen/js/jx/FieldEmitter.java | 8 +++-----
.../compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java | 2 +-
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
index 01f4d70..807e7ae 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
@@ -255,7 +255,7 @@ public class ClassEmitter extends JSSubEmitter implements
}
write(ASEmitterTokens.SPACE);
writeToken(ASEmitterTokens.EQUAL);
- getEmitter().getWalker().walk(vnode);
+ getEmitter().emitAssignmentCoercion(vnode, varnode.getVariableTypeNode().resolve(getProject()));
write(ASEmitterTokens.SEMICOLON);
wroteOne = true;
}
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
index 1b1d07c..dfcff18 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
@@ -158,9 +158,7 @@ public class FieldEmitter extends JSSubEmitter implements
write(ASEmitterTokens.SPACE);
writeToken(ASEmitterTokens.EQUAL);
endMapping(node);
- startMapping(vnode);
- write(vnodeString);
- endMapping(vnode);
+ getEmitter().emitAssignmentCoercion(vnode, node.getVariableTypeNode().resolve(getProject()));
}
else if (ndef.isStatic() && EmitterUtils.needsStaticInitializer(vnodeString, className))
{
@@ -267,8 +265,8 @@ public class FieldEmitter extends JSSubEmitter implements
if (ndef.isStatic() && EmitterUtils.needsStaticInitializer(vnodeString, className) && !isPackageOrFileMember)
{
writeNewline();
- write(className
- + ASEmitterTokens.MEMBER_ACCESS.getToken());
+ write(className);
+ write(ASEmitterTokens.MEMBER_ACCESS.getToken());
write(node.getName());
if (node.getNodeID() == ASTNodeID.BindableVariableID && !node.isConst())
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
index 36dac1b..a1e1d3e 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
@@ -3059,7 +3059,7 @@ public class MXMLRoyaleEmitter extends MXMLEmitter implements
write("_"); // use backing variable
write(ASEmitterTokens.SPACE);
writeToken(ASEmitterTokens.EQUAL);
- fjs.getWalker().walk(vnode);
+ fjs.emitAssignmentCoercion(vnode, varnode.getVariableTypeNode().resolve(getMXMLWalker().getProject()));
write(ASEmitterTokens.SEMICOLON);
}