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 6679e22713dacaf9ddcb4fb1fdc8517a78b82006
Author: Josh Tynjala <[email protected]>
AuthorDate: Thu Jul 25 10:03:37 2024 -0700

    ASParser, VariableExpressionNode: fix start position of variable expression 
in for-in and for-each loops
---
 .../org/apache/royale/compiler/internal/parsing/as/ASParser.g    | 9 ++++++++-
 .../royale/compiler/internal/tree/as/VariableExpressionNode.java | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git 
a/compiler/src/main/antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.g
 
b/compiler/src/main/antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.g
index a4ee25dfd..74e661e13 100644
--- 
a/compiler/src/main/antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.g
+++ 
b/compiler/src/main/antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.g
@@ -1385,7 +1385,7 @@ variableDefExpression returns[NodeBase v]
 /**
  * Matches a single variable definition in a for loop.
  */
-singleVariableDefExpression[ASToken varToken, boolean isConst] returns 
[ExpressionNodeBase n]
+singleVariableDefExpression[IASToken varToken, boolean isConst] returns 
[ExpressionNodeBase n]
 {
        n = null;
        VariableNode variable = null;
@@ -1396,7 +1396,14 @@ singleVariableDefExpression[ASToken varToken, boolean 
isConst] returns [Expressi
                { 
                        variable = new VariableNode(varName);
                        if(varToken != null)
+                       {
                                variable.setKeyword(varToken);
+                               variable.startBefore(varToken);
+                       }
+                       else
+                       {
+                               variable.startBefore(varName);
+                       }
                        variable.setIsConst(isConst);
                        n = new VariableExpressionNode(variable);
                }
diff --git 
a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/VariableExpressionNode.java
 
b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/VariableExpressionNode.java
index 45a9b67bb..7f63ccc8f 100644
--- 
a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/VariableExpressionNode.java
+++ 
b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/VariableExpressionNode.java
@@ -43,6 +43,7 @@ public class VariableExpressionNode extends 
ExpressionNodeBase implements IVaria
         super();
         this.variableNode = variableNode;
         variableNode.setParent(this);
+        span(variableNode);
     }
 
     /**

Reply via email to