Skip to content

Commit 2611909

Browse files
committed
fix unittests
1 parent d916393 commit 2611909

File tree

4 files changed

+19
-8
lines changed

4 files changed

+19
-8
lines changed

src/compiler/factory/nodeFactory.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4262,14 +4262,14 @@ namespace ts {
42624262
}
42634263

42644264
// @api
4265-
function createJSDocSeeTag(tagName: Identifier | undefined, name: JSDocNameExpression, comment?: string): JSDocSeeTag {
4265+
function createJSDocSeeTag(tagName: Identifier | undefined, name: JSDocNameExpression | undefined, comment?: string): JSDocSeeTag {
42664266
const node = createBaseJSDocTag<JSDocSeeTag>(SyntaxKind.JSDocSeeTag, tagName ?? createIdentifier("see"), comment);
42674267
node.name = name;
42684268
return node;
42694269
}
42704270

42714271
// @api
4272-
function updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier | undefined, name: JSDocNameExpression, comment?: string): JSDocSeeTag {
4272+
function updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier | undefined, name: JSDocNameExpression | undefined, comment?: string): JSDocSeeTag {
42734273
return node.tagName !== tagName
42744274
|| node.name !== name
42754275
|| node.comment !== comment

src/compiler/parser.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7155,7 +7155,7 @@ namespace ts {
71557155
export function parseJSDocNameExpression(mayOmitBraces?: boolean): JSDocNameExpression {
71567156
const pos = getNodePos();
71577157
const hasBrace = (mayOmitBraces ? parseOptional : parseExpected)(SyntaxKind.OpenBraceToken);
7158-
const entityName = doInsideOfContext(NodeFlags.JSDoc, () => parseEntityName(/* allowReservedWords*/ true));
7158+
const entityName = doInsideOfContext(NodeFlags.JSDoc, () => parseEntityName(/* allowReservedWords*/ false));
71597159
if (!mayOmitBraces || hasBrace) {
71607160
parseExpectedJSDoc(SyntaxKind.CloseBraceToken);
71617161
}
@@ -7580,6 +7580,17 @@ namespace ts {
75807580
return token() === SyntaxKind.OpenBraceToken ? parseJSDocTypeExpression() : undefined;
75817581
}
75827582

7583+
function tryParseJSDocNameExpression(): JSDocNameExpression | undefined {
7584+
return isJSDocNameExpression() ? parseJSDocNameExpression() : undefined;
7585+
}
7586+
7587+
function isJSDocNameExpression(): boolean {
7588+
return lookAhead(() => {
7589+
parseOptional(SyntaxKind.OpenBraceToken);
7590+
return isIdentifier();
7591+
})
7592+
}
7593+
75837594
function parseBracketNameInPropertyAndParamTag(): { name: EntityName, isBracketed: boolean } {
75847595
// Looking for something like '[foo]', 'foo', '[foo.bar]' or 'foo.bar'
75857596
const isBracketed = parseOptionalJsdoc(SyntaxKind.OpenBracketToken);
@@ -7679,7 +7690,7 @@ namespace ts {
76797690
}
76807691

76817692
function parseSeeTag(start: number, tagName: Identifier, indent?: number, indentText?: string): JSDocSeeTag {
7682-
const nameExpression = parseJSDocNameExpression(/*mayOmitBraces*/ true);
7693+
const nameExpression = tryParseJSDocNameExpression();
76837694
const end = getNodePos();
76847695
const comments = indent !== undefined && indentText !== undefined ? parseTrailingTagComments(start, end, indent, indentText) : undefined;
76857696
return finishNode(factory.createJSDocSeeTag(tagName, nameExpression, comments), start, end);

src/compiler/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3188,7 +3188,7 @@ namespace ts {
31883188

31893189
export interface JSDocSeeTag extends JSDocTag {
31903190
readonly kind: SyntaxKind.JSDocSeeTag;
3191-
readonly name: JSDocNameExpression;
3191+
readonly name?: JSDocNameExpression;
31923192
}
31933193

31943194
export interface JSDocReturnTag extends JSDocTag {
@@ -6987,8 +6987,8 @@ namespace ts {
69876987
updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | undefined): JSDocPropertyTag;
69886988
createJSDocTypeTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string): JSDocTypeTag;
69896989
updateJSDocTypeTag(node: JSDocTypeTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | undefined): JSDocTypeTag;
6990-
createJSDocSeeTag(tagName: Identifier | undefined, nameExpression: JSDocNameExpression, comment?: string): JSDocSeeTag;
6991-
updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier | undefined, nameExpression: JSDocNameExpression, comment?: string): JSDocSeeTag;
6990+
createJSDocSeeTag(tagName: Identifier | undefined, nameExpression: JSDocNameExpression | undefined, comment?: string): JSDocSeeTag;
6991+
updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier | undefined, nameExpression: JSDocNameExpression | undefined, comment?: string): JSDocSeeTag;
69926992
createJSDocReturnTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression, comment?: string): JSDocReturnTag;
69936993
updateJSDocReturnTag(node: JSDocReturnTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | undefined): JSDocReturnTag;
69946994
createJSDocThisTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression, comment?: string): JSDocThisTag;

tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@link tags.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"comment": "{@link first link}\nInside {@link link text} thing",
99
"tags": {
1010
"0": {
11-
"kind": "JSDocTag",
11+
"kind": "JSDocSeeTag",
1212
"pos": 63,
1313
"end": 68,
1414
"modifierFlagsCache": 0,

0 commit comments

Comments
 (0)