diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index 62191137f25..ae31ab544f3 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -74,15 +74,12 @@ namespace ts.FindAllReferences { undefined; } - if (isConstructorDeclaration(node.parent) || - node.parent.name === node || // node is name of declaration, use parent + if (node.parent.name === node || // node is name of declaration, use parent + isConstructorDeclaration(node.parent) || + isExportAssignment(node.parent) || // 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 || - (!node.parent.isExportEquals && node.kind === SyntaxKind.DefaultKeyword) - ) || // Is default export (node.kind === SyntaxKind.DefaultKeyword && hasModifier(node.parent, ModifierFlags.ExportDefault))) { return getDeclarationForDeclarationSpan(node.parent); diff --git a/tests/cases/fourslash/findAllRefsExportEquals.ts b/tests/cases/fourslash/findAllRefsExportEquals.ts index 3580c8fe4ee..fd17a82633c 100644 --- a/tests/cases/fourslash/findAllRefsExportEquals.ts +++ b/tests/cases/fourslash/findAllRefsExportEquals.ts @@ -1,13 +1,13 @@ /// // @Filename: /a.ts -////type [|{| "isWriteAccess": true, "isDefinition": true |}T|] = number; -////[|export|] = [|T|]; +////[|type [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}T|] = number;|] +////[|[|{| "declarationRangeIndex": 2 |}export|] = [|{| "declarationRangeIndex": 2 |}T|];|] // @Filename: /b.ts -////import [|{| "isWriteAccess": true, "isDefinition": true |}T|] = require("[|./a|]"); +////[|import [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 5 |}T|] = require("[|./a|]");|] -const [r0, r1, r2, r3, r4] = test.ranges(); +const [r0Def, r0, r12Def, r1, r2, r3Def, r3, r4] = test.ranges(); const mod = { definition: 'module "/a"', ranges: [r4, r1] }; const a = { definition: "type T = number", ranges: [r0, r2] }; const b = { definition: '(alias) type T = number\nimport T = require("./a")', ranges: [r3] }; diff --git a/tests/cases/fourslash/findAllRefs_importType_exportEquals.ts b/tests/cases/fourslash/findAllRefs_importType_exportEquals.ts index 0d60c153ce9..4597c3a8bc9 100644 --- a/tests/cases/fourslash/findAllRefs_importType_exportEquals.ts +++ b/tests/cases/fourslash/findAllRefs_importType_exportEquals.ts @@ -5,7 +5,7 @@ ////[|namespace [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}T|] { //// export type U = string; ////}|] -////[|[|export|] = [|{| "declarationRangeIndex": 4 |}T|];|] +////[|[|{| "declarationRangeIndex": 4 |}export|] = [|{| "declarationRangeIndex": 4 |}T|];|] // @Filename: /b.ts ////const x: import("[|./[|a|]|]") = 0;