mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
When constructing signature, include parameter symbol instead of property symbol of parameter-property declaration
Fixes #4566
This commit is contained in:
parent
09a313a417
commit
a275dabe44
@ -3829,7 +3829,13 @@ namespace ts {
|
||||
let minArgumentCount = -1;
|
||||
for (let i = 0, n = declaration.parameters.length; i < n; i++) {
|
||||
const param = declaration.parameters[i];
|
||||
parameters.push(param.symbol);
|
||||
let paramSymbol = param.symbol;
|
||||
// Include parameter symbol instead of property symbol in the signature
|
||||
if (paramSymbol && !!(paramSymbol.flags & SymbolFlags.Property) && !isBindingPattern(param.name)) {
|
||||
const resolvedSymbol = resolveName(param, paramSymbol.name, SymbolFlags.Value, undefined, undefined);
|
||||
paramSymbol = resolvedSymbol;
|
||||
}
|
||||
parameters.push(paramSymbol);
|
||||
if (param.type && param.type.kind === SyntaxKind.StringLiteral) {
|
||||
hasStringLiterals = true;
|
||||
}
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
////class Circle {
|
||||
//// /**
|
||||
//// * Initialize a circle.
|
||||
//// * @param radius The radius of the circle.
|
||||
//// */
|
||||
//// constructor(private radius: number) {
|
||||
//// }
|
||||
////}
|
||||
////var a = new Circle(/**/
|
||||
|
||||
goTo.marker('');
|
||||
verify.signatureHelpCountIs(1);
|
||||
verify.currentSignatureHelpIs("Circle(radius: number): Circle");
|
||||
verify.currentParameterHelpArgumentNameIs("radius");
|
||||
verify.currentParameterSpanIs("radius: number");
|
||||
verify.currentParameterHelpArgumentDocCommentIs("The radius of the circle.");
|
||||
Loading…
x
Reference in New Issue
Block a user