This is an automated email from the ASF dual-hosted git repository. piotrz pushed a commit to branch release/0.9.6 in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit d941f263ca03890f84c3599cadc4407b966f6b0f Author: Josh Tynjala <[email protected]> AuthorDate: Fri Sep 13 13:32:58 2019 -0700 compiler: more end line/column improvements (cherry picked from commit f72da6033d17ae0acf9ec047882adafae186d656) --- .../compiler/internal/definitions/VectorInformation.java | 4 ++-- .../royale/compiler/internal/parsing/as/BaseASParser.java | 2 +- .../compiler/internal/tree/as/BinaryOperatorNodeBase.java | 2 +- .../royale/compiler/internal/tree/as/ClassNode.java | 4 ++-- .../royale/compiler/internal/tree/as/FunctionNode.java | 4 ++-- .../internal/tree/as/NamespaceAccessExpressionNode.java | 2 +- .../internal/tree/as/NamespaceIdentifierNode.java | 2 +- .../apache/royale/compiler/internal/tree/as/NodeBase.java | 15 +++++++++++++++ .../royale/compiler/internal/tree/as/ParameterNode.java | 2 +- .../compiler/internal/tree/as/UnaryOperatorNodeBase.java | 2 +- .../compiler/internal/tree/as/UseNamespaceNode.java | 2 +- .../royale/compiler/internal/tree/mxml/MXMLNodeBase.java | 1 + 12 files changed, 29 insertions(+), 13 deletions(-) diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/VectorInformation.java b/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/VectorInformation.java index d83b27a..1310790 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/VectorInformation.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/VectorInformation.java @@ -198,14 +198,14 @@ class VectorInformation //add the fixed getter/setter pair GetterNode fixGetter = new GetterNode(null, null, new IdentifierNode("fixed")); NamespaceIdentifierNode pub = new NamespaceIdentifierNode(INamespaceConstants.public_); - pub.span(-1, -1, -1, -1); + pub.span(-1, -1, -1, -1, -1, -1); fixGetter.setNamespace(pub); fixGetter.setType(null, new IdentifierNode(IASLanguageConstants.Boolean)); retVal[2] = fixGetter; SetterNode fixSetter = new SetterNode(null, null, new IdentifierNode("fixed")); pub = new NamespaceIdentifierNode(INamespaceConstants.public_); - pub.span(-1, -1, -1, -1); + pub.span(-1, -1, -1, -1, -1, -1); fixSetter.setNamespace(pub); fixSetter.setType(null, new IdentifierNode(IASLanguageConstants.void_)); ParameterNode value = new ParameterNode(new IdentifierNode("value")); diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java index a9a5e91..62bdaee 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java @@ -1573,7 +1573,7 @@ abstract class BaseASParser extends LLkParser implements IProblemReporter } else { - block.span(blockToken.getStart() + 1, blockToken.getStart() + 1, blockToken.getLine(), blockToken.getColumn()); + block.span(blockToken.getStart() + 1, blockToken.getStart() + 1, blockToken.getLine(), blockToken.getColumn(), blockToken.getLine(), blockToken.getColumn()); } } diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/BinaryOperatorNodeBase.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/BinaryOperatorNodeBase.java index d51c82d..03dae65 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/BinaryOperatorNodeBase.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/BinaryOperatorNodeBase.java @@ -282,7 +282,7 @@ public abstract class BinaryOperatorNodeBase extends OperatorNodeBase implements protected void fillInOffsets() { if (rightOperandNode == null && leftOperandNode == null && operatorStart != -1) - span(operatorStart, operatorStart + 1, -1, -1); + span(operatorStart, operatorStart + 1, -1, -1, -1, -1); else super.fillInOffsets(); } diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ClassNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ClassNode.java index bfc65ba..484f0a8 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ClassNode.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ClassNode.java @@ -513,10 +513,10 @@ public class ClassNode extends MemberedNode implements IClassNode // so we'll create one and add it to the ClassNode IdentifierNode constructorNameNode = new IdentifierNode(getName()); constructorNameNode.setReferenceValue(getDefinition()); - constructorNameNode.span(getNameAbsoluteStart(), getNameAbsoluteEnd(), -1, -1); + constructorNameNode.span(getNameAbsoluteStart(), getNameAbsoluteEnd(), -1, -1, -1, -1); defaultConstructorNode = new FunctionNode(null, constructorNameNode); NamespaceIdentifierNode pub = new NamespaceIdentifierNode(INamespaceConstants.public_); - pub.span(-1, -1, -1, -1); + pub.span(-1, -1, -1, -1, -1, -1); defaultConstructorNode.setNamespace(pub); defaultConstructorNode.normalize(true); defaultConstructorNode.setParent(contentsNode); diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/FunctionNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/FunctionNode.java index 64c0b2b..54c836c 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/FunctionNode.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/FunctionNode.java @@ -384,7 +384,7 @@ public class FunctionNode extends BaseTypedDefinitionNode implements IFunctionNo // metadata, the constructor should be considered private // and we should generate a fake namespace node NamespaceIdentifierNode priv = new NamespaceIdentifierNode(INamespaceConstants.private_); - priv.span(-1, -1, -1, -1); + priv.span(-1, -1, -1, -1, -1, -1); priv.setDecorationTarget(this); return priv; } @@ -392,7 +392,7 @@ public class FunctionNode extends BaseTypedDefinitionNode implements IFunctionNo // if there is no namespace node, the namespace defaults to public // and we'll generate a fake node NamespaceIdentifierNode pub = new NamespaceIdentifierNode(INamespaceConstants.public_); - pub.span(-1, -1, -1, -1); + pub.span(-1, -1, -1, -1, -1, -1); pub.setDecorationTarget(this); return pub; } diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceAccessExpressionNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceAccessExpressionNode.java index 175f500..ae8e987 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceAccessExpressionNode.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceAccessExpressionNode.java @@ -41,7 +41,7 @@ public class NamespaceAccessExpressionNode extends BinaryOperatorNodeBase implem { super(operator, left instanceof IdentifierNode ? new NamespaceIdentifierNode((IdentifierNode)left) : left, right); - leftOperandNode.span(left.getAbsoluteStart(), left.getAbsoluteEnd(), left.getLine(), left.getColumn()); + leftOperandNode.span(left.getAbsoluteStart(), left.getAbsoluteEnd(), left.getLine(), left.getColumn(), left.getEndLine(), left.getEndColumn()); } /** diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceIdentifierNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceIdentifierNode.java index bd74fd2..05238a9 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceIdentifierNode.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NamespaceIdentifierNode.java @@ -79,7 +79,7 @@ public class NamespaceIdentifierNode extends IdentifierNode implements INamespac { super(node.getName()); - span(node.getAbsoluteStart(), node.getAbsoluteEnd(), node.getLine(), node.getColumn()); + span(node.getAbsoluteStart(), node.getAbsoluteEnd(), node.getLine(), node.getColumn(), node.getEndLine(), node.getEndColumn()); setSourcePath(node.getSourcePath()); } diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NodeBase.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NodeBase.java index d4d9941..eef182f 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NodeBase.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/NodeBase.java @@ -483,13 +483,28 @@ public abstract class NodeBase extends SourceLocation implements IASNode * @param start start offset for the node * @param end end offset for the node * @param line line number for the node + * @deprecated Use span(int,int,int,int,int,int) instead so that endLine and endColumn are included */ public final void span(int start, int end, int line, int column) { + span(start, end, line, column, -1, -1); + } + + /** + * Set the start and end offsets of the node. Used during parsing. + * + * @param start start offset for the node + * @param end end offset for the node + * @param line line number for the node + */ + public final void span(int start, int end, int line, int column, int endLine, int endColumn) + { setStart(start); setEnd(end); setLine(line); setColumn(column); + setEndLine(endLine); + setEndColumn(endColumn); } public Collection<ICompilerProblem> runPostProcess(EnumSet<PostProcessStep> set, ASScope containingScope) diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ParameterNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ParameterNode.java index 51b209c..93efc2f 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ParameterNode.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/ParameterNode.java @@ -172,7 +172,7 @@ public final class ParameterNode extends BaseVariableNode implements IParameterN if (typeNode == null && isRest()) { typeNode = new IdentifierNode(IASLanguageConstants.Array); - typeNode.span(-1, -1, -1, -1); + typeNode.span(-1, -1, -1, -1, -1, -1); return; } diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UnaryOperatorNodeBase.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UnaryOperatorNodeBase.java index 5145924..be92a12 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UnaryOperatorNodeBase.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UnaryOperatorNodeBase.java @@ -148,7 +148,7 @@ public abstract class UnaryOperatorNodeBase extends OperatorNodeBase implements { if (operandNode == null && operatorStart != -1) { - span(operatorStart, operatorStart + 1, -1, -1); + span(operatorStart, operatorStart + 1, -1, -1, -1, -1); } else { diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UseNamespaceNode.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UseNamespaceNode.java index 8ce1130..51a3d29 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UseNamespaceNode.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/UseNamespaceNode.java @@ -123,7 +123,7 @@ public class UseNamespaceNode extends FixedChildrenNode implements IUseNamespace { namespaceNode = new NamespaceIdentifierNode(((IIdentifierNode)namespace).getName()); ((NodeBase)namespaceNode).setSourcePath(namespace.getSourcePath()); - ((NodeBase)namespaceNode).span(namespace.getAbsoluteStart(), namespace.getAbsoluteEnd(), namespace.getLine(), namespace.getColumn()); + ((NodeBase)namespaceNode).span(namespace.getAbsoluteStart(), namespace.getAbsoluteEnd(), namespace.getLine(), namespace.getColumn(), namespace.getEndLine(), namespace.getEndColumn()); } } } diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/mxml/MXMLNodeBase.java b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/mxml/MXMLNodeBase.java index 4909e2e..b511f63 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/mxml/MXMLNodeBase.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/mxml/MXMLNodeBase.java @@ -689,6 +689,7 @@ public abstract class MXMLNodeBase extends NodeBase implements IMXMLNode * @param end The ending offset of this node. * @param line The number of the line on which this node starts. * @param column This number of the column at which this node starts. + * @deprecated Use setLocation(String,int,int,int,int,int,int) instead */ public void setLocation(String sourcePath, int start, int end, int line, int column) {
