diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index b1e6909f093..bc36ef06226 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -356,7 +356,7 @@ namespace ts.FindAllReferences.Core { /** Core find-all-references algorithm for a normal symbol. */ function getReferencedSymbolsForSymbol(symbol: Symbol, node: Node, sourceFiles: ReadonlyArray, checker: TypeChecker, cancellationToken: CancellationToken, options: Options): SymbolAndEntries[] { - symbol = skipPastExportOrImportSpecifierOrUnion(symbol, node, checker); + symbol = skipPastExportOrImportSpecifierOrUnion(symbol, node, checker) || symbol; // Compute the meaning from the location and the symbol it references const searchMeaning = getIntersectingMeaningFromDeclarations(getMeaningFromLocation(node), symbol.declarations); diff --git a/tests/cases/fourslash/findAllRefsBadImport.ts b/tests/cases/fourslash/findAllRefsBadImport.ts new file mode 100644 index 00000000000..89a81d81f79 --- /dev/null +++ b/tests/cases/fourslash/findAllRefsBadImport.ts @@ -0,0 +1,7 @@ +/// + +////import { [|ab|] as [|cd|] } from "doesNotExist"; + +const [r0, r1] = test.ranges(); +verify.referencesOf(r0, [r1]); +verify.referencesOf(r1, [r1]);