mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-24 02:21:30 -05:00
Merge pull request #6870 from RyanCavanaugh/fix6825
Recognize object literal method JSDoc comments
This commit is contained in:
@@ -3976,7 +3976,7 @@ namespace ts {
|
||||
shorthandDeclaration.equalsToken = equalsToken;
|
||||
shorthandDeclaration.objectAssignmentInitializer = allowInAnd(parseAssignmentExpressionOrHigher);
|
||||
}
|
||||
return finishNode(shorthandDeclaration);
|
||||
return addJSDocComment(finishNode(shorthandDeclaration));
|
||||
}
|
||||
else {
|
||||
const propertyAssignment = <PropertyAssignment>createNode(SyntaxKind.PropertyAssignment, fullStart);
|
||||
@@ -3985,7 +3985,7 @@ namespace ts {
|
||||
propertyAssignment.questionToken = questionToken;
|
||||
parseExpected(SyntaxKind.ColonToken);
|
||||
propertyAssignment.initializer = allowInAnd(parseAssignmentExpressionOrHigher);
|
||||
return finishNode(propertyAssignment);
|
||||
return addJSDocComment(finishNode(propertyAssignment));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1212,13 +1212,19 @@ namespace ts {
|
||||
}
|
||||
|
||||
// Also recognize when the node is the RHS of an assignment expression
|
||||
const parent = node.parent;
|
||||
const isSourceOfAssignmentExpressionStatement =
|
||||
node.parent && node.parent.parent &&
|
||||
node.parent.kind === SyntaxKind.BinaryExpression &&
|
||||
(node.parent as BinaryExpression).operatorToken.kind === SyntaxKind.EqualsToken &&
|
||||
node.parent.parent.kind === SyntaxKind.ExpressionStatement;
|
||||
parent && parent.parent &&
|
||||
parent.kind === SyntaxKind.BinaryExpression &&
|
||||
(parent as BinaryExpression).operatorToken.kind === SyntaxKind.EqualsToken &&
|
||||
parent.parent.kind === SyntaxKind.ExpressionStatement;
|
||||
if (isSourceOfAssignmentExpressionStatement) {
|
||||
return node.parent.parent.jsDocComment;
|
||||
return parent.parent.jsDocComment;
|
||||
}
|
||||
|
||||
const isPropertyAssignmentExpression = parent && parent.kind === SyntaxKind.PropertyAssignment;
|
||||
if (isPropertyAssignmentExpression) {
|
||||
return parent.jsDocComment;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
32
tests/cases/fourslash/jsDocFunctionSignatures3.ts
Normal file
32
tests/cases/fourslash/jsDocFunctionSignatures3.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
///<reference path="fourslash.ts" />
|
||||
|
||||
// @allowNonTsExtensions: true
|
||||
// @Filename: Foo.js
|
||||
|
||||
//// var someObject = {
|
||||
//// /**
|
||||
//// * @param {string} param1 Some string param.
|
||||
//// * @param {number} parm2 Some number param.
|
||||
//// */
|
||||
//// someMethod: function(param1, param2) {
|
||||
//// console.log(param1/*1*/);
|
||||
//// return false;
|
||||
//// },
|
||||
//// /**
|
||||
//// * @param {number} p1 Some number param.
|
||||
//// */
|
||||
//// otherMethod(p1) {
|
||||
//// p1/*2*/
|
||||
//// }
|
||||
////
|
||||
//// };
|
||||
|
||||
goTo.marker('1');
|
||||
edit.insert('.');
|
||||
verify.memberListContains('substr', undefined, undefined, 'method');
|
||||
edit.backspace();
|
||||
|
||||
goTo.marker('2');
|
||||
edit.insert('.');
|
||||
verify.memberListContains('toFixed', undefined, undefined, 'method');
|
||||
edit.backspace();
|
||||
Reference in New Issue
Block a user