@@ -83,9 +83,7 @@ func (p *Parser) parseJSDocTypeExpression(mayOmitBraces bool) *ast.Node {
8383 p .parseExpectedJSDoc (ast .KindCloseBraceToken )
8484 }
8585
86- result := p .factory .NewJSDocTypeExpression (t )
87- p .finishNode (result , pos )
88- return result
86+ return p .finishNode (p .factory .NewJSDocTypeExpression (t ), pos )
8987}
9088
9189func (p * Parser ) parseJSDocNameReference () * ast.Node {
@@ -96,16 +94,13 @@ func (p *Parser) parseJSDocNameReference() *ast.Node {
9694 for p .token == ast .KindPrivateIdentifier {
9795 p .scanner .ReScanHashToken () // rescan #id as # id
9896 p .nextTokenJSDoc () // then skip the #
99- entityName = p .factory .NewQualifiedName (entityName , p .parseIdentifier ())
100- p .finishNode (entityName , p2 )
97+ entityName = p .finishNode (p .factory .NewQualifiedName (entityName , p .parseIdentifier ()), p2 )
10198 }
10299 if hasBrace {
103100 p .parseExpectedJSDoc (ast .KindCloseBraceToken )
104101 }
105102
106- result := p .factory .NewJSDocNameReference (entityName )
107- p .finishNode (result , pos )
108- return result
103+ return p .finishNode (p .factory .NewJSDocNameReference (entityName ), pos )
109104}
110105
111106// Pass end=-1 to parse the text to the end
@@ -258,8 +253,7 @@ loop:
258253 if linkEnd == start {
259254 comments = removeLeadingNewlines (comments )
260255 }
261- jsdocText := p .factory .NewJSDocText (p .stringSlicePool .Clone (comments ))
262- p .finishNodeWithEnd (jsdocText , linkEnd , commentEnd )
256+ jsdocText := p .finishNodeWithEnd (p .factory .NewJSDocText (p .stringSlicePool .Clone (comments )), linkEnd , commentEnd )
263257 commentParts = append (commentParts , jsdocText , link )
264258 comments = comments [:0 ]
265259 linkEnd = p .scanner .TokenEnd ()
@@ -287,8 +281,7 @@ loop:
287281
288282 if len (comments ) > 0 {
289283 comments [len (comments )- 1 ] = strings .TrimRightFunc (comments [len (comments )- 1 ], unicode .IsSpace )
290- jsdocText := p .factory .NewJSDocText (p .stringSlicePool .Clone (comments ))
291- p .finishNodeWithEnd (jsdocText , linkEnd , commentsPos )
284+ jsdocText := p .finishNodeWithEnd (p .factory .NewJSDocText (p .stringSlicePool .Clone (comments )), linkEnd , commentsPos )
292285 commentParts = append (commentParts , jsdocText )
293286 }
294287
@@ -305,8 +298,7 @@ loop:
305298 p .newNodeList (core .NewTextRange (start , commentsPos ), commentParts ),
306299 tagsNodeList ,
307300 )
308- p .finishNodeWithEnd (jsdocComment , fullStart , end )
309- return jsdocComment
301+ return p .finishNodeWithEnd (jsdocComment , fullStart , end )
310302}
311303
312304func removeLeadingNewlines (comments []string ) []string {
@@ -532,14 +524,13 @@ loop:
532524 linkStart := p .scanner .TokenEnd () - 1
533525 link := p .parseJSDocLink (linkStart )
534526 if link != nil {
535- text := p .factory .NewJSDocText (p .stringSlicePool .Clone (comments ))
536527 var commentStart int
537528 if linkEnd > - 1 {
538529 commentStart = linkEnd
539530 } else {
540531 commentStart = commentsPos
541532 }
542- p .finishNodeWithEnd (text , commentStart , commentEnd )
533+ text := p .finishNodeWithEnd (p . factory . NewJSDocText ( p . stringSlicePool . Clone ( comments )) , commentStart , commentEnd )
543534 parts = append (parts , text )
544535 parts = append (parts , link )
545536 comments = comments [:0 ]
@@ -593,8 +584,7 @@ loop:
593584 } else {
594585 commentStart = commentsPos
595586 }
596- text := p .factory .NewJSDocText (p .stringSlicePool .Clone (comments ))
597- p .finishNode (text , commentStart )
587+ text := p .finishNode (p .factory .NewJSDocText (p .stringSlicePool .Clone (comments )), commentStart )
598588 parts = append (parts , text )
599589 }
600590
@@ -631,8 +621,7 @@ func (p *Parser) parseJSDocLink(start int) *ast.Node {
631621 default :
632622 create = p .factory .NewJSDocLinkPlain (name , text )
633623 }
634- p .finishNodeWithEnd (create , start , p .scanner .TokenEnd ())
635- return create
624+ return p .finishNodeWithEnd (create , start , p .scanner .TokenEnd ())
636625}
637626
638627func (p * Parser ) parseJSDocLinkName () * ast.Node {
@@ -647,15 +636,13 @@ func (p *Parser) parseJSDocLinkName() *ast.Node {
647636 } else {
648637 right = p .parseIdentifierName ()
649638 }
650- name = p .factory .NewQualifiedName (name , right )
651- p .finishNode (name , pos )
639+ name = p .finishNode (p .factory .NewQualifiedName (name , right ), pos )
652640 }
653641
654642 for p .token == ast .KindPrivateIdentifier {
655643 p .scanner .ReScanHashToken ()
656644 p .nextTokenJSDoc ()
657- name = p .factory .NewQualifiedName (name , p .parseIdentifier ())
658- p .finishNode (name , pos )
645+ name = p .finishNode (p .factory .NewQualifiedName (name , p .parseIdentifier ()), pos )
659646 }
660647 return name
661648 }
@@ -678,9 +665,7 @@ func isJSDocLinkTag(kind string) bool {
678665}
679666
680667func (p * Parser ) parseUnknownTag (start int , tagName * ast.IdentifierNode , indent int , indentText string ) * ast.Node {
681- tag := p .factory .NewJSDocUnknownTag (tagName , p .parseTrailingTagComments (start , p .nodePos (), indent , indentText ))
682- p .finishNode (tag , start )
683- return tag
668+ return p .finishNode (p .factory .NewJSDocUnknownTag (tagName , p .parseTrailingTagComments (start , p .nodePos (), indent , indentText )), start )
684669}
685670
686671func (p * Parser ) tryParseTypeExpression () * ast.Node {
@@ -757,8 +742,7 @@ func (p *Parser) parseParameterOrPropertyTag(start int, tagName *ast.IdentifierN
757742 } else {
758743 result = p .factory .NewJSDocParameterTag (tagName , name , isBracketed , typeExpression , isNameFirst , comment )
759744 }
760- p .finishNode (result , start )
761- return result
745+ return p .finishNode (result , start )
762746}
763747
764748func (p * Parser ) parseNestedTypeLiteral (typeExpression * ast.Node , name * ast.EntityName , target propertyLikeParse , indent int ) * ast.Node {
@@ -779,11 +763,8 @@ func (p *Parser) parseNestedTypeLiteral(typeExpression *ast.Node, name *ast.Enti
779763 }
780764 }
781765 if children != nil {
782- literal := p .factory .NewJSDocTypeLiteral (children , typeExpression .Type ().Kind == ast .KindArrayType )
783- p .finishNode (literal , pos )
784- result := p .factory .NewJSDocTypeExpression (literal )
785- p .finishNode (result , pos )
786- return result
766+ literal := p .finishNode (p .factory .NewJSDocTypeLiteral (children , typeExpression .Type ().Kind == ast .KindArrayType ), pos )
767+ return p .finishNode (p .factory .NewJSDocTypeExpression (literal ), pos )
787768 }
788769 }
789770 return nil
@@ -795,9 +776,7 @@ func (p *Parser) parseReturnTag(previousTags []*ast.Node, start int, tagName *as
795776 }
796777
797778 typeExpression := p .tryParseTypeExpression ()
798- result := p .factory .NewJSDocReturnTag (tagName , typeExpression , p .parseTrailingTagComments (start , p .nodePos (), indent , indentText ))
799- p .finishNode (result , start )
800- return result
779+ return p .finishNode (p .factory .NewJSDocReturnTag (tagName , typeExpression , p .parseTrailingTagComments (start , p .nodePos (), indent , indentText )), start )
801780}
802781
803782// pass indent=-1 to skip parsing trailing comments (as when a type tag is nested in a typedef)
@@ -811,9 +790,7 @@ func (p *Parser) parseTypeTag(previousTags []*ast.Node, start int, tagName *ast.
811790 if indent != - 1 {
812791 comments = p .parseTrailingTagComments (start , p .nodePos (), indent , indentText )
813792 }
814- result := p .factory .NewJSDocTypeTag (tagName , typeExpression , comments )
815- p .finishNode (result , start )
816- return result
793+ return p .finishNode (p .factory .NewJSDocTypeTag (tagName , typeExpression , comments ), start )
817794}
818795
819796func (p * Parser ) parseSeeTag (start int , tagName * ast.IdentifierNode , indent int , indentText string ) * ast.Node {
@@ -825,31 +802,23 @@ func (p *Parser) parseSeeTag(start int, tagName *ast.IdentifierNode, indent int,
825802 nameExpression = p .parseJSDocNameReference ()
826803 }
827804 comments := p .parseTrailingTagComments (start , p .nodePos (), indent , indentText )
828- result := p .factory .NewJSDocSeeTag (tagName , nameExpression , comments )
829- p .finishNode (result , start )
830- return result
805+ return p .finishNode (p .factory .NewJSDocSeeTag (tagName , nameExpression , comments ), start )
831806}
832807
833808func (p * Parser ) parseImplementsTag (start int , tagName * ast.IdentifierNode , margin int , indentText string ) * ast.Node {
834809 className := p .parseExpressionWithTypeArgumentsForAugments ()
835- result := p .factory .NewJSDocImplementsTag (tagName , className , p .parseTrailingTagComments (start , p .nodePos (), margin , indentText ))
836- p .finishNode (result , start )
837- return result
810+ return p .finishNode (p .factory .NewJSDocImplementsTag (tagName , className , p .parseTrailingTagComments (start , p .nodePos (), margin , indentText )), start )
838811}
839812
840813func (p * Parser ) parseAugmentsTag (start int , tagName * ast.IdentifierNode , margin int , indentText string ) * ast.Node {
841814 className := p .parseExpressionWithTypeArgumentsForAugments ()
842- result := p .factory .NewJSDocAugmentsTag (tagName , className , p .parseTrailingTagComments (start , p .nodePos (), margin , indentText ))
843- p .finishNode (result , start )
844- return result
815+ return p .finishNode (p .factory .NewJSDocAugmentsTag (tagName , className , p .parseTrailingTagComments (start , p .nodePos (), margin , indentText )), start )
845816}
846817
847818func (p * Parser ) parseSatisfiesTag (start int , tagName * ast.IdentifierNode , margin int , indentText string ) * ast.Node {
848819 typeExpression := p .parseJSDocTypeExpression (false )
849820 comments := p .parseTrailingTagComments (start , p .nodePos (), margin , indentText )
850- result := p .factory .NewJSDocSatisfiesTag (tagName , typeExpression , comments )
851- p .finishNode (result , start )
852- return result
821+ return p .finishNode (p .factory .NewJSDocSatisfiesTag (tagName , typeExpression , comments ), start )
853822}
854823
855824func (p * Parser ) parseImportTag (start int , tagName * ast.IdentifierNode , margin int , indentText string ) * ast.Node {
@@ -865,9 +834,7 @@ func (p *Parser) parseImportTag(start int, tagName *ast.IdentifierNode, margin i
865834 attributes := p .tryParseImportAttributes ()
866835
867836 comments := p .parseTrailingTagComments (start , p .nodePos (), margin , indentText )
868- result := p .factory .NewJSDocImportTag (tagName , importClause , moduleSpecifier , attributes , comments )
869- p .finishNode (result , start )
870- return result
837+ return p .finishNode (p .factory .NewJSDocImportTag (tagName , importClause , moduleSpecifier , attributes , comments ), start )
871838}
872839
873840func (p * Parser ) parseExpressionWithTypeArgumentsForAugments () * ast.Node {
@@ -877,39 +844,33 @@ func (p *Parser) parseExpressionWithTypeArgumentsForAugments() *ast.Node {
877844 p .scanner .SetSkipJSDocLeadingAsterisks (true )
878845 typeArguments := p .parseTypeArguments ()
879846 p .scanner .SetSkipJSDocLeadingAsterisks (false )
880- node := p .factory .NewExpressionWithTypeArguments (expression , typeArguments )
881- res := node
882- p .finishNode (node , pos )
847+ node := p .finishNode (p .factory .NewExpressionWithTypeArguments (expression , typeArguments ), pos )
883848 if usedBrace {
884849 p .skipWhitespace ()
885850 p .parseExpected (ast .KindCloseBraceToken )
886851 }
887- return res
852+ return node
888853}
889854
890855func (p * Parser ) parsePropertyAccessEntityNameExpression () * ast.Node {
891856 pos := p .nodePos ()
892857 node := p .parseJSDocIdentifierName (nil )
893858 for p .parseOptional (ast .KindDotToken ) {
894859 name := p .parseJSDocIdentifierName (nil )
895- node = p .factory .NewPropertyAccessExpression (node , nil , name , ast .NodeFlagsNone )
896- p .finishNode (node , pos )
860+ node = p .finishNode (p .factory .NewPropertyAccessExpression (node , nil , name , ast .NodeFlagsNone ), pos )
897861 }
898862 return node
899863}
900864
901865func (p * Parser ) parseSimpleTag (start int , createTag func (tagName * ast.IdentifierNode , comment * ast.NodeList ) * ast.Node , tagName * ast.IdentifierNode , margin int , indentText string ) * ast.Node {
902- tag := createTag (tagName , p .parseTrailingTagComments (start , p .nodePos (), margin , indentText ))
903- p .finishNode (tag , start )
904- return tag
866+ return p .finishNode (createTag (tagName , p .parseTrailingTagComments (start , p .nodePos (), margin , indentText )), start )
905867}
906868
907869func (p * Parser ) parseThisTag (start int , tagName * ast.IdentifierNode , margin int , indentText string ) * ast.Node {
908870 typeExpression := p .parseJSDocTypeExpression (true )
909871 p .skipWhitespace ()
910872 result := p .factory .NewJSDocThisTag (tagName , typeExpression , p .parseTrailingTagComments (start , p .nodePos (), margin , indentText ))
911- p .finishNode (result , start )
912- return result
873+ return p .finishNode (result , start )
913874}
914875
915876func (p * Parser ) parseTypedefTag (start int , tagName * ast.IdentifierNode , indent int , indentText string ) * ast.Node {
@@ -957,8 +918,7 @@ func (p *Parser) parseTypedefTag(start int, tagName *ast.IdentifierNode, indent
957918 if childTypeTag != nil && childTypeTag .TypeExpression != nil && ! isObjectOrObjectArrayTypeReference (childTypeTag .TypeExpression .Type ()) {
958919 typeExpression = childTypeTag .TypeExpression
959920 } else {
960- p .finishNode (jsdocTypeLiteral , start )
961- typeExpression = jsdocTypeLiteral
921+ typeExpression = p .finishNode (jsdocTypeLiteral , start )
962922 }
963923 }
964924 }
@@ -982,8 +942,7 @@ func (p *Parser) parseTypedefTag(start int, tagName *ast.IdentifierNode, indent
982942 comment = p .parseTrailingTagComments (start , end , indent , indentText )
983943 }
984944
985- typedefTag := p .factory .NewJSDocTypedefTag (tagName , typeExpression , fullName , comment )
986- p .finishNodeWithEnd (typedefTag , start , end )
945+ typedefTag := p .finishNodeWithEnd (p .factory .NewJSDocTypedefTag (tagName , typeExpression , fullName , comment ), start , end )
987946 if typeExpression != nil {
988947 typeExpression .Parent = typedefTag // forcibly overwrite parent potentially set by inner type expression parse
989948 }
@@ -1023,9 +982,7 @@ func (p *Parser) parseJSDocSignature(start int, indent int) *ast.Node {
1023982 if returnTag == nil {
1024983 p .rewind (state )
1025984 }
1026- result := p .factory .NewJSDocSignature (nil , parameters , returnTag )
1027- p .finishNode (result , start )
1028- return result
985+ return p .finishNode (p .factory .NewJSDocSignature (nil , parameters , returnTag ), start )
1029986}
1030987
1031988func (p * Parser ) parseCallbackTag (start int , tagName * ast.IdentifierNode , indent int , indentText string ) * ast.Node {
@@ -1042,9 +999,7 @@ func (p *Parser) parseCallbackTag(start int, tagName *ast.IdentifierNode, indent
1042999 } else {
10431000 end = typeExpression .End ()
10441001 }
1045- result := p .factory .NewJSDocCallbackTag (tagName , typeExpression , fullName , comment )
1046- p .finishNodeWithEnd (result , start , end )
1047- return result
1002+ return p .finishNodeWithEnd (p .factory .NewJSDocCallbackTag (tagName , typeExpression , fullName , comment ), start , end )
10481003}
10491004
10501005func (p * Parser ) parseOverloadTag (start int , tagName * ast.IdentifierNode , indent int , indentText string ) * ast.Node {
@@ -1060,9 +1015,7 @@ func (p *Parser) parseOverloadTag(start int, tagName *ast.IdentifierNode, indent
10601015 } else {
10611016 end = typeExpression .End ()
10621017 }
1063- result := p .factory .NewJSDocOverloadTag (tagName , typeExpression , comment )
1064- p .finishNodeWithEnd (result , start , end )
1065- return result
1018+ return p .finishNodeWithEnd (p .factory .NewJSDocOverloadTag (tagName , typeExpression , comment ), start , end )
10661019}
10671020
10681021func textsEqual (a * ast.EntityName , b * ast.EntityName ) bool {
@@ -1168,9 +1121,7 @@ func (p *Parser) parseTemplateTagTypeParameter() *ast.Node {
11681121 if ast .NodeIsMissing (name ) {
11691122 return nil
11701123 }
1171- result := p .factory .NewTypeParameterDeclaration (modifiers , name , nil /*constraint*/ , defaultType )
1172- p .finishNode (result , typeParameterPos )
1173- return result
1124+ return p .finishNode (p .factory .NewTypeParameterDeclaration (modifiers , name , nil /*constraint*/ , defaultType ), typeParameterPos )
11741125}
11751126
11761127func (p * Parser ) parseTemplateTagTypeParameters () * ast.TypeParameterList {
@@ -1204,8 +1155,7 @@ func (p *Parser) parseTemplateTag(start int, tagName *ast.IdentifierNode, indent
12041155 }
12051156 typeParameters := p .parseTemplateTagTypeParameters ()
12061157 result := p .factory .NewJSDocTemplateTag (tagName , constraint , typeParameters , p .parseTrailingTagComments (start , p .nodePos (), indent , indentText ))
1207- p .finishNode (result , start )
1208- return result
1158+ return p .finishNode (result , start )
12091159}
12101160
12111161func (p * Parser ) parseOptionalJsdoc (t ast.Kind ) bool {
@@ -1230,8 +1180,7 @@ func (p *Parser) parseJSDocEntityName() *ast.EntityName {
12301180 p .parseExpected (ast .KindCloseBracketToken )
12311181 }
12321182 pos := entity .Pos ()
1233- entity = p .factory .NewQualifiedName (entity , name )
1234- p .finishNode (entity , pos )
1183+ entity = p .finishNode (p .factory .NewQualifiedName (entity , name ), pos )
12351184 }
12361185 return entity
12371186}
@@ -1245,16 +1194,12 @@ func (p *Parser) parseJSDocIdentifierName(diagnosticMessage *diagnostics.Message
12451194 } else {
12461195 p .parseErrorAtCurrentToken (diagnostics .Identifier_expected )
12471196 }
1248- result := p .newIdentifier ("" )
1249- p .finishNode (result , p .nodePos ())
1250- return result
1197+ return p .finishNode (p .newIdentifier ("" ), p .nodePos ())
12511198 }
12521199 pos := p .scanner .TokenStart ()
12531200 end := p .scanner .TokenEnd ()
12541201 text := p .scanner .TokenValue ()
12551202 p .internIdentifier (text )
12561203 p .nextTokenJSDoc ()
1257- result := p .newIdentifier (text )
1258- p .finishNodeWithEnd (result , pos , end )
1259- return result
1204+ return p .finishNodeWithEnd (p .newIdentifier (text ), pos , end )
12601205}
0 commit comments