@@ -737,10 +737,10 @@ private JSDocTypeExpression parseArrayType() throws ParseError {
737737 List <JSDocTypeExpression > elements = new ArrayList <>();
738738 consume (Token .LBRACK , "ArrayType should start with [" );
739739 while (token != Token .RBRACK ) {
740- loc = loc ();
741740 if (token == Token .REST ) {
741+ SourceLocation restLoc = loc ();
742742 consume (Token .REST );
743- elements .add (finishNode (new RestType (loc , parseTypeExpression ())));
743+ elements .add (finishNode (new RestType (restLoc , parseTypeExpression ())));
744744 break ;
745745 } else {
746746 elements .add (parseTypeExpression ());
@@ -914,7 +914,7 @@ private List<JSDocTypeExpression> parseParametersType() throws ParseError {
914914 consume (Token .COLON );
915915 expr =
916916 finishNode (
917- new ParameterType (loc , ((NameExpression ) expr ).getName (), parseTypeExpression ()));
917+ new ParameterType (new SourceLocation ( loc ) , ((NameExpression ) expr ).getName (), parseTypeExpression ()));
918918 }
919919 if (token == Token .EQUAL ) {
920920 consume (Token .EQUAL );
@@ -1089,7 +1089,9 @@ private JSDocTypeExpression parseTypeExpression() throws ParseError {
10891089 consume (Token .RBRACK , "expected an array-style type declaration (' + value + '[])" );
10901090 List <JSDocTypeExpression > expressions = new ArrayList <>();
10911091 expressions .add (expr );
1092- return finishNode (new TypeApplication (loc , new NameExpression (loc , "Array" ), expressions ));
1092+ NameExpression nameExpr =
1093+ finishNode (new NameExpression (new SourceLocation (loc ), "Array" ));
1094+ return finishNode (new TypeApplication (loc , nameExpr , expressions ));
10931095 }
10941096
10951097 return expr ;
0 commit comments