fix(59463): Feature that displays method argument names inline does not correctly handle method overloading (#59504)

This commit is contained in:
Oleksandr T. 2024-10-19 00:44:43 +03:00 коммит произвёл GitHub
Родитель c07da583af
Коммит df9d16503f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
5 изменённых файлов: 43 добавлений и 6 удалений

Просмотреть файл

@ -106,7 +106,6 @@ import {
PrefixUnaryExpression,
PropertyDeclaration,
QuotePreference,
Signature,
SignatureDeclarationBase,
skipParentheses,
some,
@ -296,11 +295,8 @@ export function provideInlayHints(context: InlayHintsContext): InlayHint[] {
return;
}
const candidates: Signature[] = [];
const signature = checker.getResolvedSignatureForSignatureHelp(expr, candidates);
if (!signature || !candidates.length) {
return;
}
const signature = checker.getResolvedSignature(expr);
if (signature === undefined) return;
let signatureParamPos = 0;
for (const originalArg of args) {

Просмотреть файл

@ -0,0 +1,18 @@
// === Inlay Hints ===
{ n: [1, 2, 3] },
^
{
"text": "ok_1:",
"position": 195,
"kind": "Parameter",
"whitespaceAfter": true
}
{
^
{
"text": "ok_2:",
"position": 217,
"kind": "Parameter",
"whitespaceAfter": true
}

Просмотреть файл

@ -0,0 +1,23 @@
/// <reference path="fourslash.ts" />
////type HasID = {
//// id: number;
////}
////
////type Numbers = {
//// n: number[];
////}
////
////declare function func(bad1: number, bad2: HasID): void;
////declare function func(ok_1: Numbers, ok_2: HasID): void;
////
////func(
//// { n: [1, 2, 3] },
//// {
//// id: 1,
//// },
////);
verify.baselineInlayHints(undefined, {
includeInlayParameterNameHints: "all",
});