diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index 453fd31ac98..743b8915ae0 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -40,15 +40,15 @@ namespace ts.FindAllReferences { } // TODO(shkamat):: - // JSXOpeningElement or JSXElement for tagName ? + // JSXOpeningElement or JSXElement for tagName ? if (!node.parent || (!isDeclaration(node.parent) && !isExportAssignment(node.parent))) { return undefined; } if (node.parent.name === node || // node is name of declaration, use parent - // Property name of the import export specifier use import/export specifier - isImportOrExportSpecifier(node.parent) && node.parent.propertyName === node || - // Is assignment of export assignment + // Property name of the import export specifier or binding pattern, use parent + ((isImportOrExportSpecifier(node.parent) || isBindingElement(node.parent)) + && node.parent.propertyName === node) || isExportAssignment(node.parent) && node.parent.expression === node) { return getDeclarationForDeclarationSpan(node.parent); } diff --git a/tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts b/tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts index 4ae87f19db5..526838995c3 100644 --- a/tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts +++ b/tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts @@ -1,11 +1,12 @@ /// ////interface I { -//// [|property1|]: number; +//// [|[|{| "declarationRangeIndex": 0 |}property1|]: number;|] //// property2: string; ////} //// ////var foo: I; -////var { [|property1|]: prop1 } = foo; +////[|var { [|{| "declarationRangeIndex": 2 |}property1|]: prop1 } = foo;|] -verify.rangesAreRenameLocations(); + +verify.rangesAreRenameLocations(test.rangesByText().get("property1"));