Skip to content

Commit 6f261f5

Browse files
committed
Merge pull request #6870 from RyanCavanaugh/fix6825
Recognize object literal method JSDoc comments
2 parents 665a4e3 + 1c70623 commit 6f261f5

File tree

3 files changed

+45
-7
lines changed

3 files changed

+45
-7
lines changed

src/compiler/parser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3976,7 +3976,7 @@ namespace ts {
39763976
shorthandDeclaration.equalsToken = equalsToken;
39773977
shorthandDeclaration.objectAssignmentInitializer = allowInAnd(parseAssignmentExpressionOrHigher);
39783978
}
3979-
return finishNode(shorthandDeclaration);
3979+
return addJSDocComment(finishNode(shorthandDeclaration));
39803980
}
39813981
else {
39823982
const propertyAssignment = <PropertyAssignment>createNode(SyntaxKind.PropertyAssignment, fullStart);
@@ -3985,7 +3985,7 @@ namespace ts {
39853985
propertyAssignment.questionToken = questionToken;
39863986
parseExpected(SyntaxKind.ColonToken);
39873987
propertyAssignment.initializer = allowInAnd(parseAssignmentExpressionOrHigher);
3988-
return finishNode(propertyAssignment);
3988+
return addJSDocComment(finishNode(propertyAssignment));
39893989
}
39903990
}
39913991

src/compiler/utilities.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,13 +1212,19 @@ namespace ts {
12121212
}
12131213

12141214
// Also recognize when the node is the RHS of an assignment expression
1215+
const parent = node.parent;
12151216
const isSourceOfAssignmentExpressionStatement =
1216-
node.parent && node.parent.parent &&
1217-
node.parent.kind === SyntaxKind.BinaryExpression &&
1218-
(node.parent as BinaryExpression).operatorToken.kind === SyntaxKind.EqualsToken &&
1219-
node.parent.parent.kind === SyntaxKind.ExpressionStatement;
1217+
parent && parent.parent &&
1218+
parent.kind === SyntaxKind.BinaryExpression &&
1219+
(parent as BinaryExpression).operatorToken.kind === SyntaxKind.EqualsToken &&
1220+
parent.parent.kind === SyntaxKind.ExpressionStatement;
12201221
if (isSourceOfAssignmentExpressionStatement) {
1221-
return node.parent.parent.jsDocComment;
1222+
return parent.parent.jsDocComment;
1223+
}
1224+
1225+
const isPropertyAssignmentExpression = parent && parent.kind === SyntaxKind.PropertyAssignment;
1226+
if (isPropertyAssignmentExpression) {
1227+
return parent.jsDocComment;
12221228
}
12231229
}
12241230

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
///<reference path="fourslash.ts" />
2+
3+
// @allowNonTsExtensions: true
4+
// @Filename: Foo.js
5+
6+
//// var someObject = {
7+
//// /**
8+
//// * @param {string} param1 Some string param.
9+
//// * @param {number} parm2 Some number param.
10+
//// */
11+
//// someMethod: function(param1, param2) {
12+
//// console.log(param1/*1*/);
13+
//// return false;
14+
//// },
15+
//// /**
16+
//// * @param {number} p1 Some number param.
17+
//// */
18+
//// otherMethod(p1) {
19+
//// p1/*2*/
20+
//// }
21+
////
22+
//// };
23+
24+
goTo.marker('1');
25+
edit.insert('.');
26+
verify.memberListContains('substr', undefined, undefined, 'method');
27+
edit.backspace();
28+
29+
goTo.marker('2');
30+
edit.insert('.');
31+
verify.memberListContains('toFixed', undefined, undefined, 'method');
32+
edit.backspace();

0 commit comments

Comments
 (0)