Skip to content

Commit 31d98ec

Browse files
authored
Don’t try to create auto import provider when host program doesn’t exist (microsoft#45126)
* Guard against creating auto import provider without host program * Also don’t pre-seed auto import provider if updateGraph didn’t produce a program * Rename `isFirstLoad`
1 parent 365b256 commit 31d98ec

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/server/project.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,15 +1070,15 @@ namespace ts.server {
10701070
this.lastCachedUnresolvedImportsList = undefined;
10711071
}
10721072

1073-
const isFirstLoad = this.projectProgramVersion === 0;
1073+
const isFirstProgramLoad = this.projectProgramVersion === 0 && hasNewProgram;
10741074
if (hasNewProgram) {
10751075
this.projectProgramVersion++;
10761076
}
10771077
if (hasAddedorRemovedFiles) {
10781078
if (!this.autoImportProviderHost) this.autoImportProviderHost = undefined;
10791079
this.autoImportProviderHost?.markAsDirty();
10801080
}
1081-
if (isFirstLoad) {
1081+
if (isFirstProgramLoad) {
10821082
// Preload auto import provider so it's not created during completions request
10831083
this.getPackageJsonAutoImportProvider();
10841084
}
@@ -1902,6 +1902,11 @@ namespace ts.server {
19021902
return ts.emptyArray;
19031903
}
19041904

1905+
const program = hostProject.getCurrentProgram();
1906+
if (!program) {
1907+
return ts.emptyArray;
1908+
}
1909+
19051910
let dependencyNames: Set<string> | undefined;
19061911
let rootNames: string[] | undefined;
19071912
const rootFileName = combinePaths(hostProject.currentDirectory, inferredTypesContainingFile);
@@ -1918,7 +1923,6 @@ namespace ts.server {
19181923
compilerOptions,
19191924
moduleResolutionHost));
19201925

1921-
const program = hostProject.getCurrentProgram()!;
19221926
const symlinkCache = hostProject.getSymlinkCache();
19231927
for (const resolution of resolutions) {
19241928
if (!resolution.resolvedTypeReferenceDirective?.resolvedFileName) continue;

0 commit comments

Comments
 (0)