From 8ad73bd30e0f6eb632b34f8e2cc88856ffd9540a Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Thu, 15 Aug 2024 16:44:03 -0700 Subject: [PATCH] Make initialLoadPending as property instead of method --- src/server/editorServices.ts | 16 ++++++++-------- src/server/project.ts | 14 +++++++------- tests/baselines/reference/api/typescript.d.ts | 1 - 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index 073f8ea71271c..ba81a6972f91b 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -716,7 +716,7 @@ function forEachAncestorProject( while (true) { // Skip if project is not composite and we are only looking for solution if ( - !project.isInitialLoadPending() && + !project.initialLoadPending && ( !project.getCompilerOptions().composite || project.getCompilerOptions().disableSolutionSearching @@ -746,7 +746,7 @@ function forEachAncestorProject( // If this ancestor is new and was delay loaded, then set the project as potential project reference if ( - ancestor.project.isInitialLoadPending() && + ancestor.project.initialLoadPending && project.getCompilerOptions().composite ) { // Set a potential project reference @@ -909,7 +909,7 @@ function forEachAnyProjectReferenceKind( ): T | undefined { return project.getCurrentProgram() ? project.forEachResolvedProjectReference(cb) : - project.isInitialLoadPending() ? + project.initialLoadPending ? forEachPotentialProjectReference(project, cbPotentialProjectRef) : forEach(project.getProjectReferences(), cbProjectRef); } @@ -1978,7 +1978,7 @@ export class ProjectService { scheduledAnyProjectUpdate = true; if (projectCanonicalPath === canonicalConfigFilePath) { // Skip refresh if project is not yet loaded - if (project.isInitialLoadPending()) return; + if (project.initialLoadPending) return; project.pendingUpdateLevel = ProgramUpdateLevel.Full; project.pendingUpdateReason = loadReason; this.delayUpdateProjectGraph(project); @@ -2056,7 +2056,7 @@ export class ProjectService { // If this was not already updated, and its new project, schedule for update // Existing projects dont need to update if they were not using the changed config in any way - if (tryAddToSet(updatedProjects, projectForInfo) && projectForInfo.isInitialLoadPending()) { + if (tryAddToSet(updatedProjects, projectForInfo) && projectForInfo.initialLoadPending) { this.delayUpdateProjectGraph(projectForInfo); } }); @@ -3063,7 +3063,7 @@ export class ProjectService { * @internal */ reloadConfiguredProject(project: ConfiguredProject, reason: string) { - project.isInitialLoadPending = returnFalse; + project.initialLoadPending = false; project.pendingUpdateReason = undefined; project.pendingUpdateLevel = ProgramUpdateLevel.Update; @@ -3895,7 +3895,7 @@ export class ProjectService { const reason = `Reloading configured project in external project: ${externalProjectName}`; projects.forEach(project => { if (this.getHostPreferences().lazyConfiguredProjectsFromExternalProject) { - if (!project.isInitialLoadPending()) { + if (!project.initialLoadPending) { this.clearSemanticCache(project); project.pendingUpdateLevel = ProgramUpdateLevel.Full; project.pendingUpdateReason = reloadReason(reason); @@ -4358,7 +4358,7 @@ export class ProjectService { /** @internal */ loadAncestorProjectTree(forProjects?: ReadonlyCollection) { forProjects ??= new Set( - mapDefinedIterator(this.configuredProjects.entries(), ([key, project]) => !project.isInitialLoadPending() ? key : undefined), + mapDefinedIterator(this.configuredProjects.entries(), ([key, project]) => !project.initialLoadPending ? key : undefined), ); const seenProjects = new Set(); diff --git a/src/server/project.ts b/src/server/project.ts index bbd97689b17d5..c3ff0fbf4765a 100644 --- a/src/server/project.ts +++ b/src/server/project.ts @@ -109,7 +109,6 @@ import { ResolvedTypeReferenceDirectiveWithFailedLookupLocations, resolvePackageNameToPackageJson, returnFalse, - returnTrue, ScriptKind, some, sortAndDeduplicate, @@ -435,7 +434,8 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo protected projectErrors: Diagnostic[] | undefined; - protected isInitialLoadPending: () => boolean = returnFalse; + /** @internal */ + initialLoadPending = false; /** @internal */ dirty = false; @@ -1911,7 +1911,7 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo } private filesToStringWorker(writeProjectFileNames: boolean, writeFileExplaination: boolean, writeFileVersionAndText: boolean) { - if (this.isInitialLoadPending()) return "\tFiles (0) InitialLoadPending\n"; + if (this.initialLoadPending) return "\tFiles (0) InitialLoadPending\n"; if (!this.program) return "\tFiles (0) NoProgram\n"; const sourceFiles = this.program.getSourceFiles(); let strBuilder = `\tFiles (${sourceFiles.length})\n`; @@ -1991,7 +1991,7 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo : (files: Map) => arrayFrom(files.keys()); // Update the graph only if initial configured project load is not pending - if (!this.isInitialLoadPending()) { + if (!this.initialLoadPending) { updateProjectIfDirty(this); } @@ -2882,7 +2882,7 @@ export class ConfiguredProject extends Project { projectOptions?: ProjectOptions | true; /** @internal */ - override isInitialLoadPending: () => boolean = returnTrue; + override initialLoadPending = true; /** @internal */ sendLoadingProjectFinish = false; @@ -2972,7 +2972,7 @@ export class ConfiguredProject extends Project { override updateGraph(): boolean { if (this.deferredClose) return false; const isDirty = this.dirty; - this.isInitialLoadPending = returnFalse; + this.initialLoadPending = false; const updateLevel = this.pendingUpdateLevel; this.pendingUpdateLevel = ProgramUpdateLevel.Update; let result: boolean; @@ -3032,7 +3032,7 @@ export class ConfiguredProject extends Project { /** @internal */ setPotentialProjectReference(canonicalConfigPath: NormalizedPath) { - Debug.assert(this.isInitialLoadPending()); + Debug.assert(this.initialLoadPending); (this.potentialProjectReferences || (this.potentialProjectReferences = new Set())).add(canonicalConfigPath); } diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index c8589f0b8ae9f..5c1754ad1bbd7 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -2827,7 +2827,6 @@ declare namespace ts { private lastReportedFileNames; private lastReportedVersion; protected projectErrors: Diagnostic[] | undefined; - protected isInitialLoadPending: () => boolean; private typingsCache; private typingWatchers; private readonly cancellationToken;