@@ -6507,14 +6507,33 @@ namespace ts {
65076507 }
65086508 }
65096509
6510+ function skipWhitespaceOrAsterisk ( ) : void {
6511+ if ( token ( ) === SyntaxKind . WhitespaceTrivia || token ( ) === SyntaxKind . NewLineTrivia ) {
6512+ if ( lookAhead ( isNextNonwhitespaceTokenEndOfFile ) ) {
6513+ return ; // Don't skip whitespace prior to EoF (or end of comment) - that shouldn't be included in any node's range
6514+ }
6515+ }
6516+
6517+ let precedingLineBreak = scanner . hasPrecedingLineBreak ( ) ;
6518+ while ( ( precedingLineBreak && token ( ) === SyntaxKind . AsteriskToken ) || token ( ) === SyntaxKind . WhitespaceTrivia || token ( ) === SyntaxKind . NewLineTrivia ) {
6519+ if ( token ( ) === SyntaxKind . NewLineTrivia ) {
6520+ precedingLineBreak = true ;
6521+ }
6522+ else if ( token ( ) === SyntaxKind . AsteriskToken ) {
6523+ precedingLineBreak = false ;
6524+ }
6525+ nextJSDocToken ( ) ;
6526+ }
6527+ }
6528+
65106529 function parseTag ( indent : number ) {
65116530 Debug . assert ( token ( ) === SyntaxKind . AtToken ) ;
65126531 const atToken = < AtToken > createNode ( SyntaxKind . AtToken , scanner . getTokenPos ( ) ) ;
65136532 atToken . end = scanner . getTextPos ( ) ;
65146533 nextJSDocToken ( ) ;
65156534
65166535 const tagName = parseJSDocIdentifierName ( ) ;
6517- skipWhitespace ( ) ;
6536+ skipWhitespaceOrAsterisk ( ) ;
65186537
65196538 let tag : JSDocTag | undefined ;
65206539 switch ( tagName . escapedText ) {
@@ -6658,7 +6677,7 @@ namespace ts {
66586677 }
66596678
66606679 function tryParseTypeExpression ( ) : JSDocTypeExpression | undefined {
6661- skipWhitespace ( ) ;
6680+ skipWhitespaceOrAsterisk ( ) ;
66626681 return token ( ) === SyntaxKind . OpenBraceToken ? parseJSDocTypeExpression ( ) : undefined ;
66636682 }
66646683
@@ -6698,7 +6717,7 @@ namespace ts {
66986717 function parseParameterOrPropertyTag ( atToken : AtToken , tagName : Identifier , target : PropertyLikeParse , indent : number | undefined ) : JSDocParameterTag | JSDocPropertyTag {
66996718 let typeExpression = tryParseTypeExpression ( ) ;
67006719 let isNameFirst = ! typeExpression ;
6701- skipWhitespace ( ) ;
6720+ skipWhitespaceOrAsterisk ( ) ;
67026721
67036722 const { name, isBracketed } = parseBracketNameInPropertyAndParamTag ( ) ;
67046723 skipWhitespace ( ) ;
0 commit comments