diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index 5215b28a403..b4f1c19837d 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -363,7 +363,7 @@ namespace ts.FindAllReferences { const { node, kind } = entry; const name = originalNode.text; const isShorthandAssignment = isShorthandPropertyAssignment(node.parent); - if (isShorthandAssignment || isObjectBindingElementWithoutPropertyName(node.parent)) { + if (isShorthandAssignment || isObjectBindingElementWithoutPropertyName(node.parent) && node.parent.name === node) { const prefixColon: PrefixAndSuffix = { prefixText: name + ": " }; const suffixColon: PrefixAndSuffix = { suffixText: ": " + name }; return kind === EntryKind.SearchedLocalFoundProperty ? prefixColon diff --git a/tests/cases/fourslash/renameBindingElementInitializerExternal.ts b/tests/cases/fourslash/renameBindingElementInitializerExternal.ts new file mode 100644 index 00000000000..852be8cc7b8 --- /dev/null +++ b/tests/cases/fourslash/renameBindingElementInitializerExternal.ts @@ -0,0 +1,17 @@ +/// + +////[|const [|{| "contextRangeIndex": 0 |}external|] = true;|] +//// +////function f({ +//// lvl1 = [|external|], +//// nested: { lvl2 = [|external|]}, +//// oldName: newName = [|external|] +////}) {} +//// +////const { +//// lvl1 = [|external|], +//// nested: { lvl2 = [|external|]}, +//// oldName: newName = [|external|] +////} = obj; + +verify.rangesWithSameTextAreRenameLocations("external"); diff --git a/tests/cases/fourslash/renameBindingElementInitializerProperty.ts b/tests/cases/fourslash/renameBindingElementInitializerProperty.ts new file mode 100644 index 00000000000..ed07a6cec0d --- /dev/null +++ b/tests/cases/fourslash/renameBindingElementInitializerProperty.ts @@ -0,0 +1,20 @@ +/// + +////function f([|{[|{| "contextRangeIndex": 0 |}required|], optional = [|required|]}: {[|[|{| "contextRangeIndex": 3 |}required|]: number,|] optional?: number}|]) { +//// console.log("required", [|required|]); +//// console.log("optional", optional); +////} +//// +////f({[|[|{| "contextRangeIndex": 6 |}required|]: 10|]}); + +const [r0Def, r0, r1, r2Def, r2, r3, r4Def, r4] = test.ranges(); +verify.renameLocations([r0, r1, r3], [ + { range: r0, prefixText: "required: " }, + { range: r1}, + { range: r3} +]); +verify.renameLocations([r2, r4], [ + { range: r0, suffixText: ": required" }, + { range: r2}, + { range: r4} +]);