diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index bd0e63561da54..8d41211439b6a 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -584,7 +584,7 @@ namespace ts.FindAllReferences.Core { } function getReferencedSymbolsForModuleIfDeclaredBySourceFile(symbol: Symbol, program: Program, sourceFiles: readonly SourceFile[], cancellationToken: CancellationToken, options: Options, sourceFilesSet: ReadonlyMap) { - const moduleSourceFile = symbol.flags & SymbolFlags.Module ? find(symbol.declarations, isSourceFile) : undefined; + const moduleSourceFile = (symbol.flags & SymbolFlags.Module) && symbol.declarations && find(symbol.declarations, isSourceFile); if (!moduleSourceFile) return undefined; const exportEquals = symbol.exports!.get(InternalSymbolName.ExportEquals); // If !!exportEquals, we're about to add references to `import("mod")` anyway, so don't double-count them. diff --git a/tests/cases/fourslash/findAllRefsGlobalThisKeywordInModule.ts b/tests/cases/fourslash/findAllRefsGlobalThisKeywordInModule.ts new file mode 100644 index 0000000000000..40222b2530b42 --- /dev/null +++ b/tests/cases/fourslash/findAllRefsGlobalThisKeywordInModule.ts @@ -0,0 +1,8 @@ +/// +// @noLib: true + +////[|this|]; +////export const c = 1; + +const [glob] = test.ranges(); +verify.referenceGroups(glob, undefined);