diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index 820af277b7dfd..96d3ccf899273 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -402,7 +402,7 @@ namespace ts.FindAllReferences { const parent = node.parent; const name = originalNode.text; const isShorthandAssignment = isShorthandPropertyAssignment(parent); - if (isShorthandAssignment || isObjectBindingElementWithoutPropertyName(parent) && parent.name === node) { + if (isShorthandAssignment || (isObjectBindingElementWithoutPropertyName(parent) && parent.name === node && parent.dotDotDotToken === undefined)) { const prefixColon: PrefixAndSuffix = { prefixText: name + ": " }; const suffixColon: PrefixAndSuffix = { suffixText: ": " + name }; if (kind === EntryKind.SearchedLocalFoundProperty) { diff --git a/tests/cases/fourslash/renameRestBindingElement.ts b/tests/cases/fourslash/renameRestBindingElement.ts new file mode 100644 index 0000000000000..59e58c37f4a27 --- /dev/null +++ b/tests/cases/fourslash/renameRestBindingElement.ts @@ -0,0 +1,13 @@ +/// + +////interface I { +//// a: number; +//// b: number; +//// c: number; +////} +////function foo([|{ a, ...[|{| "contextRangeIndex": 0 |}rest|] }: I|]) { +//// [|rest|]; +////} + +const [r0Def, r0, r1] = test.ranges(); +verify.renameLocations(r0, { ranges: [r0, r1], providePrefixAndSuffixTextForRename: true });