From d6ba1ffa8a314d4ffe280a5d5495193eea97dd23 Mon Sep 17 00:00:00 2001 From: Asger F Date: Sat, 29 Jun 2019 13:07:38 +0100 Subject: [PATCH] JS: Some loc() fixes --- .../src/com/semmle/js/parser/JSDocParser.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/javascript/extractor/src/com/semmle/js/parser/JSDocParser.java b/javascript/extractor/src/com/semmle/js/parser/JSDocParser.java index e8c0da54dd5..52d423f10ce 100644 --- a/javascript/extractor/src/com/semmle/js/parser/JSDocParser.java +++ b/javascript/extractor/src/com/semmle/js/parser/JSDocParser.java @@ -737,10 +737,10 @@ public class JSDocParser { List elements = new ArrayList<>(); consume(Token.LBRACK, "ArrayType should start with ["); while (token != Token.RBRACK) { - loc = loc(); if (token == Token.REST) { + SourceLocation restLoc = loc(); consume(Token.REST); - elements.add(finishNode(new RestType(loc, parseTypeExpression()))); + elements.add(finishNode(new RestType(restLoc, parseTypeExpression()))); break; } else { elements.add(parseTypeExpression()); @@ -914,7 +914,7 @@ public class JSDocParser { consume(Token.COLON); expr = finishNode( - new ParameterType(loc, ((NameExpression) expr).getName(), parseTypeExpression())); + new ParameterType(new SourceLocation(loc), ((NameExpression) expr).getName(), parseTypeExpression())); } if (token == Token.EQUAL) { consume(Token.EQUAL); @@ -1089,7 +1089,9 @@ public class JSDocParser { consume(Token.RBRACK, "expected an array-style type declaration (' + value + '[])"); List expressions = new ArrayList<>(); expressions.add(expr); - return finishNode(new TypeApplication(loc, new NameExpression(loc, "Array"), expressions)); + NameExpression nameExpr = + finishNode(new NameExpression(new SourceLocation(loc), "Array")); + return finishNode(new TypeApplication(loc, nameExpr, expressions)); } return expr;