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
The following commit(s) were added to refs/heads/develop by this push: new dcc026bf8 ASParser: ensure that a function call end offset always includes the ) token dcc026bf8 is described below commit dcc026bf8b961f67035f74f2b18a7a9830687ac0 Author: Josh Tynjala <joshtynj...@apache.org> AuthorDate: Tue Jan 24 15:26:28 2023 -0800 ASParser: ensure that a function call end offset always includes the ) token Previously, if there was nothing between the , and ) tokens, the end offset was the , token, which could break things like code intelligence in IDEs --- .../org/apache/royale/compiler/internal/parsing/as/ASParser.g | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 00a2b8084..a4ee25dfd 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 @@ -3294,6 +3294,7 @@ argumentList[ContainerNode args] { ExpressionNodeBase n = null; boolean foundFirstArg = false; + Token afterComma = null; } : ( n=assignmentExpression { foundFirstArg = true; if (args != null) args.addItem(n); } @@ -3317,12 +3318,21 @@ argumentList[ContainerNode args] if (n!= null && args != null) args.addItem(n); } if (args != null) args.endAfter(commaT); + afterComma = LT(1); } n=assignmentExpression { if(n == null) + { n = handleMissingIdentifier(null); + // special case: nothing between "," and ")" + // ensures that args ends at the correct offset + if(afterComma.getType() == TOKEN_PAREN_CLOSE) + { + args.endAfter(afterComma); + } + } if (args != null) args.addItem(n);