@@ -6724,7 +6724,7 @@ namespace ts {
6724
6724
}
6725
6725
}
6726
6726
6727
- function parseParameterOrPropertyTag ( atToken : AtToken , tagName : Identifier , target : PropertyLikeParse , indent : number | undefined ) : JSDocParameterTag | JSDocPropertyTag {
6727
+ function parseParameterOrPropertyTag ( atToken : AtToken , tagName : Identifier , target : PropertyLikeParse , indent : number ) : JSDocParameterTag | JSDocPropertyTag {
6728
6728
let typeExpression = tryParseTypeExpression ( ) ;
6729
6729
let isNameFirst = ! typeExpression ;
6730
6730
skipWhitespaceOrAsterisk ( ) ;
@@ -6739,9 +6739,8 @@ namespace ts {
6739
6739
const result = target === PropertyLikeParse . Property ?
6740
6740
< JSDocPropertyTag > createNode ( SyntaxKind . JSDocPropertyTag , atToken . pos ) :
6741
6741
< JSDocParameterTag > createNode ( SyntaxKind . JSDocParameterTag , atToken . pos ) ;
6742
- let comment : string | undefined ;
6743
- if ( indent !== undefined ) comment = parseTagComments ( indent + scanner . getStartPos ( ) - atToken . pos ) ;
6744
- const nestedTypeLiteral = target !== PropertyLikeParse . CallbackParameter && parseNestedTypeLiteral ( typeExpression , name , target ) ;
6742
+ const comment = parseTagComments ( indent + scanner . getStartPos ( ) - atToken . pos ) ;
6743
+ const nestedTypeLiteral = target !== PropertyLikeParse . CallbackParameter && parseNestedTypeLiteral ( typeExpression , name , target , indent ) ;
6745
6744
if ( nestedTypeLiteral ) {
6746
6745
typeExpression = nestedTypeLiteral ;
6747
6746
isNameFirst = true ;
@@ -6756,14 +6755,14 @@ namespace ts {
6756
6755
return finishNode ( result ) ;
6757
6756
}
6758
6757
6759
- function parseNestedTypeLiteral ( typeExpression : JSDocTypeExpression | undefined , name : EntityName , target : PropertyLikeParse ) {
6758
+ function parseNestedTypeLiteral ( typeExpression : JSDocTypeExpression | undefined , name : EntityName , target : PropertyLikeParse , indent : number ) {
6760
6759
if ( typeExpression && isObjectOrObjectArrayTypeReference ( typeExpression . type ) ) {
6761
6760
const typeLiteralExpression = < JSDocTypeExpression > createNode ( SyntaxKind . JSDocTypeExpression , scanner . getTokenPos ( ) ) ;
6762
6761
let child : JSDocPropertyLikeTag | JSDocTypeTag | false ;
6763
6762
let jsdocTypeLiteral : JSDocTypeLiteral ;
6764
6763
const start = scanner . getStartPos ( ) ;
6765
6764
let children : JSDocPropertyLikeTag [ ] | undefined ;
6766
- while ( child = tryParse ( ( ) => parseChildParameterOrPropertyTag ( target , name ) ) ) {
6765
+ while ( child = tryParse ( ( ) => parseChildParameterOrPropertyTag ( target , indent , name ) ) ) {
6767
6766
if ( child . kind === SyntaxKind . JSDocParameterTag || child . kind === SyntaxKind . JSDocPropertyTag ) {
6768
6767
children = append ( children , child ) ;
6769
6768
}
@@ -6879,7 +6878,7 @@ namespace ts {
6879
6878
let jsdocTypeLiteral : JSDocTypeLiteral | undefined ;
6880
6879
let childTypeTag : JSDocTypeTag | undefined ;
6881
6880
const start = atToken . pos ;
6882
- while ( child = tryParse ( ( ) => parseChildPropertyTag ( ) ) ) {
6881
+ while ( child = tryParse ( ( ) => parseChildPropertyTag ( indent ) ) ) {
6883
6882
if ( ! jsdocTypeLiteral ) {
6884
6883
jsdocTypeLiteral = < JSDocTypeLiteral > createNode ( SyntaxKind . JSDocTypeLiteral , start ) ;
6885
6884
}
@@ -6945,7 +6944,7 @@ namespace ts {
6945
6944
const start = scanner . getStartPos ( ) ;
6946
6945
const jsdocSignature = createNode ( SyntaxKind . JSDocSignature , start ) as JSDocSignature ;
6947
6946
jsdocSignature . parameters = [ ] ;
6948
- while ( child = tryParse ( ( ) => parseChildParameterOrPropertyTag ( PropertyLikeParse . CallbackParameter ) as JSDocParameterTag ) ) {
6947
+ while ( child = tryParse ( ( ) => parseChildParameterOrPropertyTag ( PropertyLikeParse . CallbackParameter , indent ) as JSDocParameterTag ) ) {
6949
6948
jsdocSignature . parameters = append ( jsdocSignature . parameters as MutableNodeArray < JSDocParameterTag > , child ) ;
6950
6949
}
6951
6950
const returnTag = tryParse ( ( ) => {
@@ -6988,18 +6987,18 @@ namespace ts {
6988
6987
return a . escapedText === b . escapedText ;
6989
6988
}
6990
6989
6991
- function parseChildPropertyTag ( ) {
6992
- return parseChildParameterOrPropertyTag ( PropertyLikeParse . Property ) as JSDocTypeTag | JSDocPropertyTag | false ;
6990
+ function parseChildPropertyTag ( indent : number ) {
6991
+ return parseChildParameterOrPropertyTag ( PropertyLikeParse . Property , indent ) as JSDocTypeTag | JSDocPropertyTag | false ;
6993
6992
}
6994
6993
6995
- function parseChildParameterOrPropertyTag ( target : PropertyLikeParse , name ?: EntityName ) : JSDocTypeTag | JSDocPropertyTag | JSDocParameterTag | false {
6994
+ function parseChildParameterOrPropertyTag ( target : PropertyLikeParse , indent : number , name ?: EntityName ) : JSDocTypeTag | JSDocPropertyTag | JSDocParameterTag | false {
6996
6995
let canParseTag = true ;
6997
6996
let seenAsterisk = false ;
6998
6997
while ( true ) {
6999
6998
switch ( nextJSDocToken ( ) ) {
7000
6999
case SyntaxKind . AtToken :
7001
7000
if ( canParseTag ) {
7002
- const child = tryParseChildTag ( target ) ;
7001
+ const child = tryParseChildTag ( target , indent ) ;
7003
7002
if ( child && ( child . kind === SyntaxKind . JSDocParameterTag || child . kind === SyntaxKind . JSDocPropertyTag ) &&
7004
7003
target !== PropertyLikeParse . CallbackParameter &&
7005
7004
name && ( ts . isIdentifier ( child . name ) || ! escapedTextsEqual ( name , child . name . left ) ) ) {
@@ -7028,7 +7027,7 @@ namespace ts {
7028
7027
}
7029
7028
}
7030
7029
7031
- function tryParseChildTag ( target : PropertyLikeParse ) : JSDocTypeTag | JSDocPropertyTag | JSDocParameterTag | false {
7030
+ function tryParseChildTag ( target : PropertyLikeParse , indent : number ) : JSDocTypeTag | JSDocPropertyTag | JSDocParameterTag | false {
7032
7031
Debug . assert ( token ( ) === SyntaxKind . AtToken ) ;
7033
7032
const atToken = < AtToken > createNode ( SyntaxKind . AtToken ) ;
7034
7033
atToken . end = scanner . getTextPos ( ) ;
@@ -7055,9 +7054,7 @@ namespace ts {
7055
7054
if ( ! ( target & t ) ) {
7056
7055
return false ;
7057
7056
}
7058
- const tag = parseParameterOrPropertyTag ( atToken , tagName , target , /*indent*/ undefined ) ;
7059
- tag . comment = parseTagComments ( tag . end - tag . pos ) ;
7060
- return tag ;
7057
+ return parseParameterOrPropertyTag ( atToken , tagName , target , indent ) ;
7061
7058
}
7062
7059
7063
7060
function parseTemplateTag ( atToken : AtToken , tagName : Identifier ) : JSDocTemplateTag {
0 commit comments