From 2db17fdda212574f29d06c08cc35b8668258af51 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Mon, 4 Apr 2022 07:42:37 +0300 Subject: [PATCH] fix(48520): fix getting parameter type by index (#48521) --- src/services/codefixes/fixAddMissingMember.ts | 2 +- .../fourslash/codeFixAddMissingProperties20.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/codeFixAddMissingProperties20.ts diff --git a/src/services/codefixes/fixAddMissingMember.ts b/src/services/codefixes/fixAddMissingMember.ts index ee4743f1afb..d7606830ea1 100644 --- a/src/services/codefixes/fixAddMissingMember.ts +++ b/src/services/codefixes/fixAddMissingMember.ts @@ -169,7 +169,7 @@ namespace ts.codefix { const param = signature.parameters[argIndex].valueDeclaration; if (!(param && isParameter(param) && isIdentifier(param.name))) return undefined; - const properties = arrayFrom(checker.getUnmatchedProperties(checker.getTypeAtLocation(parent), checker.getTypeAtLocation(param), /* requireOptionalProperties */ false, /* matchDiscriminantProperties */ false)); + const properties = arrayFrom(checker.getUnmatchedProperties(checker.getTypeAtLocation(parent), checker.getParameterType(signature, argIndex), /* requireOptionalProperties */ false, /* matchDiscriminantProperties */ false)); if (!length(properties)) return undefined; return { kind: InfoKind.ObjectLiteral, token: param.name, properties, parentDeclaration: parent }; } diff --git a/tests/cases/fourslash/codeFixAddMissingProperties20.ts b/tests/cases/fourslash/codeFixAddMissingProperties20.ts new file mode 100644 index 00000000000..2c66a708e7f --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingProperties20.ts @@ -0,0 +1,14 @@ +/// + +////type T = { foo: number }; +////const foo: T[] = []; +////[|foo.push({ })|] + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_properties.message, + newRangeContent: +`foo.push({ + foo: 0 +})`, +});