Skip to content

Commit 94cc59c

Browse files
author
Andy
authored
Support getting JSDoc comment starting at a FunctionType node (microsoft#23546)
* Support getting JSDoc comment starting at a FunctionType node * Move || to end of line
1 parent c8e4b7b commit 94cc59c

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

src/compiler/utilities.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -1818,10 +1818,8 @@ namespace ts {
18181818

18191819
function getJSDocCommentsAndTagsWorker(node: Node): void {
18201820
const parent = node.parent;
1821-
if (parent &&
1822-
(parent.kind === SyntaxKind.PropertyAssignment ||
1823-
parent.kind === SyntaxKind.PropertyDeclaration ||
1824-
getNestedModuleDeclaration(parent))) {
1821+
if (!parent) return;
1822+
if (parent.kind === SyntaxKind.PropertyAssignment || parent.kind === SyntaxKind.PropertyDeclaration || getNestedModuleDeclaration(parent)) {
18251823
getJSDocCommentsAndTagsWorker(parent);
18261824
}
18271825
// Try to recognize this pattern when node is initializer of variable declaration and JSDoc comments are on containing variable statement.
@@ -1830,16 +1828,18 @@ namespace ts {
18301828
// * @returns {number}
18311829
// */
18321830
// var x = function(name) { return name.length; }
1833-
if (parent && parent.parent &&
1831+
if (parent.parent &&
18341832
(getSingleVariableOfVariableStatement(parent.parent) === node || getSourceOfAssignment(parent.parent))) {
18351833
getJSDocCommentsAndTagsWorker(parent.parent);
18361834
}
1837-
if (parent && parent.parent && parent.parent.parent &&
1838-
(getSingleInitializerOfVariableStatementOrPropertyDeclaration(parent.parent.parent) === node || getSourceOfDefaultedAssignment(parent.parent.parent))) {
1835+
if (parent.parent && parent.parent.parent &&
1836+
(getSingleVariableOfVariableStatement(parent.parent.parent) ||
1837+
getSingleInitializerOfVariableStatementOrPropertyDeclaration(parent.parent.parent) === node ||
1838+
getSourceOfDefaultedAssignment(parent.parent.parent))) {
18391839
getJSDocCommentsAndTagsWorker(parent.parent.parent);
18401840
}
18411841
if (isBinaryExpression(node) && getSpecialPropertyAssignmentKind(node) !== SpecialPropertyAssignmentKind.None ||
1842-
parent && isBinaryExpression(parent) && getSpecialPropertyAssignmentKind(parent) !== SpecialPropertyAssignmentKind.None ||
1842+
isBinaryExpression(parent) && getSpecialPropertyAssignmentKind(parent) !== SpecialPropertyAssignmentKind.None ||
18431843
node.kind === SyntaxKind.PropertyAccessExpression && node.parent && node.parent.kind === SyntaxKind.ExpressionStatement) {
18441844
getJSDocCommentsAndTagsWorker(parent);
18451845
}

tests/cases/fourslash/commentsVariables.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ verify.currentSignatureHelpDocCommentIs("foos comment");
5959
verify.quickInfoAt("5q", "function foo(): void", "foos comment");
6060

6161
goTo.marker('6');
62-
verify.currentSignatureHelpDocCommentIs("");
63-
verify.quickInfoAt("6q", "var fooVar: () => void");
62+
verify.currentSignatureHelpDocCommentIs("fooVar comment");
63+
verify.quickInfoAt("6q", "var fooVar: () => void", "fooVar comment");
6464

6565
goTo.marker('7');
6666
verify.completionListContains("foo", "function foo(): void", "foos comment");
@@ -71,9 +71,9 @@ verify.currentSignatureHelpDocCommentIs("foos comment");
7171
verify.quickInfoAt("8q", "function foo(): void", "foos comment");
7272

7373
goTo.marker('9');
74-
verify.currentSignatureHelpDocCommentIs("");
74+
verify.currentSignatureHelpDocCommentIs("fooVar comment");
7575
verify.quickInfos({
76-
"9q": "var fooVar: () => void",
76+
"9q": ["var fooVar: () => void", "fooVar comment"],
7777
"9aq": ["var fooVar: () => void", "fooVar comment"]
7878
});
7979

0 commit comments

Comments
 (0)