diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 89ead85805..ce228f39e4 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -923,7 +923,7 @@ module ts { resolvedReturnType: Type; // Resolved return type minArgumentCount: number; // Number of non-optional parameters hasRestParameter: boolean; // True if last parameter is rest parameter - hasStringLiterals: boolean; // True if instantiated + hasStringLiterals: boolean; // True if specialized target?: Signature; // Instantiation target mapper?: TypeMapper; // Instantiation mapper erasedSignatureCache?: Signature; // Erased version of signature (deferred) diff --git a/src/services/services.ts b/src/services/services.ts index a99fb01007..ea78b0164e 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3561,11 +3561,13 @@ module ts { if (isOptional) { display += "?"; } - display += ": " + typeInfoResolver.typeToString(typeInfoResolver.getTypeOfSymbol(p)); + display += ": " + typeInfoResolver.typeToString(typeInfoResolver.getTypeOfSymbol(p), argumentListOrTypeArgumentList); return new SignatureHelpParameter(p.name, "", display, isOptional); }); - var prefix = (candidateSignature.declaration.name.text || "") + "("; - var suffix = "): " + typeInfoResolver.typeToString(candidateSignature.getReturnType()); + var callTarget = (argumentListOrTypeArgumentList.parent).func; + var signatureName = typeInfoResolver.symbolToString(typeInfoResolver.getSymbolInfo(callTarget), /*enclosingDeclaration*/ undefined, /*meaning*/ undefined); + var prefix = signatureName + "("; + var suffix = "): " + typeInfoResolver.typeToString(candidateSignature.getReturnType(), argumentListOrTypeArgumentList); return new SignatureHelpItem(candidateSignature.hasRestParameter, prefix, suffix, ", ", parameterHelpItems, ""); }); var selectedItemIndex = candidates.indexOf(bestSignature);