Skip to content

Commit 904a59f

Browse files
authored
Print correct information about noOpenRef in the baseline (#58230)
1 parent 0dd12da commit 904a59f

File tree

74 files changed

+142
-799
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+142
-799
lines changed

src/harness/projectServiceStateLogger.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ export function patchServiceForStateBaseline(service: ProjectService) {
104104
function baselineProjects(currentMappers: Set<DocumentPositionMapper>) {
105105
const autoImportProviderProjects = [] as AutoImportProviderProject[];
106106
const auxiliaryProjects = [] as AuxiliaryProject[];
107+
const orphanConfiguredProjects = service.getOrphanConfiguredProjects(/*toRetainConfiguredProjects*/ undefined);
108+
const noOpenRef = (project: Project) => isConfiguredProject(project) && (project.isClosed() || orphanConfiguredProjects.has(project));
107109
return baselineState(
108110
[service.externalProjects, service.configuredProjects, service.inferredProjects, autoImportProviderProjects, auxiliaryProjects],
109111
projects,
@@ -118,7 +120,7 @@ export function patchServiceForStateBaseline(service: ProjectService) {
118120
projectDiff = printProperty(PrintPropertyWhen.TruthyOrChangedOrNew, data, "dirty", project.dirty, projectDiff, projectPropertyLogs);
119121
projectDiff = printProperty(PrintPropertyWhen.TruthyOrChangedOrNew, data, "isClosed", project.isClosed(), projectDiff, projectPropertyLogs);
120122
projectDiff = printProperty(PrintPropertyWhen.TruthyOrChangedOrNew, data, "isOrphan", !isBackgroundProject(project) && project.isOrphan(), projectDiff, projectPropertyLogs);
121-
projectDiff = printProperty(PrintPropertyWhen.TruthyOrChangedOrNew, data, "noOpenRef", isConfiguredProject(project) && !project.hasOpenRef(), projectDiff, projectPropertyLogs);
123+
projectDiff = printProperty(PrintPropertyWhen.TruthyOrChangedOrNew, data, "noOpenRef", noOpenRef(project), projectDiff, projectPropertyLogs);
122124
projectDiff = printProperty(PrintPropertyWhen.TruthyOrChangedOrNew, data, "deferredClose", isConfiguredProject(project) && project.deferredClose, projectDiff, projectPropertyLogs);
123125
projectDiff = printMapPropertyValue(
124126
PrintPropertyWhen.Changed,
@@ -149,7 +151,7 @@ export function patchServiceForStateBaseline(service: ProjectService) {
149151
dirty: project.dirty,
150152
isClosed: project.isClosed(),
151153
isOrphan: !isBackgroundProject(project) && project.isOrphan(),
152-
noOpenRef: isConfiguredProject(project) && !project.hasOpenRef(),
154+
noOpenRef: noOpenRef(project),
153155
deferredClose: isConfiguredProject(project) && project.deferredClose,
154156
autoImportProviderHost: project.autoImportProviderHost,
155157
noDtsResolutionProject: project.noDtsResolutionProject,

src/server/editorServices.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4114,7 +4114,14 @@ export class ProjectService {
41144114
}
41154115

41164116
private removeOrphanConfiguredProjects(toRetainConfiguredProjects: readonly ConfiguredProject[] | ConfiguredProject | undefined) {
4117-
const toRemoveConfiguredProjects = new Map(this.configuredProjects);
4117+
const orphanConfiguredProjects = this.getOrphanConfiguredProjects(toRetainConfiguredProjects);
4118+
// Remove all the non marked projects
4119+
orphanConfiguredProjects.forEach(project => this.removeProject(project));
4120+
}
4121+
4122+
/** @internal */
4123+
getOrphanConfiguredProjects(toRetainConfiguredProjects: readonly ConfiguredProject[] | ConfiguredProject | undefined) {
4124+
const toRemoveConfiguredProjects = new Set(this.configuredProjects.values());
41184125
const markOriginalProjectsAsUsed = (project: Project) => {
41194126
if (project.originalConfiguredProjects && (isConfiguredProject(project) || !project.isOrphan())) {
41204127
project.originalConfiguredProjects.forEach(
@@ -4138,7 +4145,7 @@ export class ProjectService {
41384145
this.inferredProjects.forEach(markOriginalProjectsAsUsed);
41394146
this.externalProjects.forEach(markOriginalProjectsAsUsed);
41404147
this.configuredProjects.forEach(project => {
4141-
if (!toRemoveConfiguredProjects.has(project.canonicalConfigFilePath)) return;
4148+
if (!toRemoveConfiguredProjects.has(project)) return;
41424149
// If project has open ref (there are more than zero references from external project/open file), keep it alive as well as any project it references
41434150
if (project.hasOpenRef()) {
41444151
retainConfiguredProject(project);
@@ -4149,15 +4156,14 @@ export class ProjectService {
41494156
}
41504157
});
41514158

4152-
// Remove all the non marked projects
4153-
toRemoveConfiguredProjects.forEach(project => this.removeProject(project));
4159+
return toRemoveConfiguredProjects;
41544160

41554161
function isRetained(project: ConfiguredProject) {
4156-
return !toRemoveConfiguredProjects.has(project.canonicalConfigFilePath) || project.hasOpenRef();
4162+
return !toRemoveConfiguredProjects.has(project) || project.hasOpenRef();
41574163
}
41584164

41594165
function retainConfiguredProject(project: ConfiguredProject) {
4160-
if (toRemoveConfiguredProjects.delete(project.canonicalConfigFilePath)) {
4166+
if (toRemoveConfiguredProjects.delete(project)) {
41614167
// Keep original projects used
41624168
markOriginalProjectsAsUsed(project);
41634169
// Keep all the references alive

tests/baselines/reference/tsserver/autoImportProvider/Does-not-create-auto-import-providers-upon-opening-projects-for-find-all-references.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,6 @@ Projects::
265265
projectStateVersion: 1
266266
projectProgramVersion: 0
267267
dirty: true
268-
noOpenRef: true
269268
270269
ScriptInfos::
271270
/node_modules/@angular/forms/forms.d.ts *new*
@@ -700,7 +699,6 @@ Projects::
700699
/packages/a/tsconfig.json (Configured) *new*
701700
projectStateVersion: 1
702701
projectProgramVersion: 1
703-
noOpenRef: true
704702
originalConfiguredProjects: 3
705703
/packages/b/tsconfig.json
706704
/tsconfig.json
@@ -713,7 +711,6 @@ Projects::
713711
projectStateVersion: 1
714712
projectProgramVersion: 1 *changed*
715713
dirty: false *changed*
716-
noOpenRef: true
717714
originalConfiguredProjects: 3 *changed*
718715
/packages/b/tsconfig.json *new*
719716
/tsconfig.json *new*

tests/baselines/reference/tsserver/declarationFileMaps/findAllReferences.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -971,7 +971,6 @@ Projects::
971971
/a/tsconfig.json (Configured) *new*
972972
projectStateVersion: 1
973973
projectProgramVersion: 1
974-
noOpenRef: true
975974
/dev/null/inferredProject1* (Inferred) *changed*
976975
projectStateVersion: 1
977976
projectProgramVersion: 1
@@ -1059,10 +1058,10 @@ FsWatchesRecursive::
10591058
{}
10601059

10611060
Projects::
1062-
/a/tsconfig.json (Configured)
1061+
/a/tsconfig.json (Configured) *changed*
10631062
projectStateVersion: 1
10641063
projectProgramVersion: 1
1065-
noOpenRef: true
1064+
noOpenRef: true *changed*
10661065
/dev/null/inferredProject1* (Inferred) *changed*
10671066
projectStateVersion: 2 *changed*
10681067
projectProgramVersion: 1

tests/baselines/reference/tsserver/declarationFileMaps/findAllReferencesFull-definition-is-in-mapped-file.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -516,10 +516,10 @@ FsWatchesRecursive::
516516
{}
517517

518518
Projects::
519-
/a/tsconfig.json (Configured)
519+
/a/tsconfig.json (Configured) *changed*
520520
projectStateVersion: 1
521521
projectProgramVersion: 1
522-
noOpenRef: true
522+
noOpenRef: false *changed*
523523
/b/tsconfig.json (Configured) *new*
524524
projectStateVersion: 1
525525
projectProgramVersion: 1
@@ -639,7 +639,6 @@ Projects::
639639
/a/tsconfig.json (Configured)
640640
projectStateVersion: 1
641641
projectProgramVersion: 1
642-
noOpenRef: true
643642
/b/tsconfig.json (Configured) *changed*
644643
projectStateVersion: 1
645644
projectProgramVersion: 1

tests/baselines/reference/tsserver/declarationFileMaps/findAllReferencesFull.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,6 @@ Projects::
10051005
/a/tsconfig.json (Configured) *new*
10061006
projectStateVersion: 1
10071007
projectProgramVersion: 1
1008-
noOpenRef: true
10091008
/dev/null/inferredProject1* (Inferred) *changed*
10101009
projectStateVersion: 1
10111010
projectProgramVersion: 1
@@ -1093,10 +1092,10 @@ FsWatchesRecursive::
10931092
{}
10941093

10951094
Projects::
1096-
/a/tsconfig.json (Configured)
1095+
/a/tsconfig.json (Configured) *changed*
10971096
projectStateVersion: 1
10981097
projectProgramVersion: 1
1099-
noOpenRef: true
1098+
noOpenRef: true *changed*
11001099
/dev/null/inferredProject1* (Inferred) *changed*
11011100
projectStateVersion: 2 *changed*
11021101
projectProgramVersion: 1

tests/baselines/reference/tsserver/declarationFileMaps/getDefinitionAndBoundSpan-with-file-navigation.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -907,11 +907,11 @@ FsWatchesRecursive::
907907
{}
908908
909909
Projects::
910-
/b/tsconfig.json (Configured)
910+
/b/tsconfig.json (Configured) *changed*
911911
projectStateVersion: 2
912912
projectProgramVersion: 1
913913
dirty: true
914-
noOpenRef: true
914+
noOpenRef: false *changed*
915915
/user/tsconfig.json (Configured) *new*
916916
projectStateVersion: 1
917917
projectProgramVersion: 1
@@ -1035,11 +1035,11 @@ FsWatchesRecursive::
10351035
{}
10361036
10371037
Projects::
1038-
/b/tsconfig.json (Configured)
1038+
/b/tsconfig.json (Configured) *changed*
10391039
projectStateVersion: 2
10401040
projectProgramVersion: 1
10411041
dirty: true
1042-
noOpenRef: true
1042+
noOpenRef: true *changed*
10431043
/user/tsconfig.json (Configured) *changed*
10441044
projectStateVersion: 1
10451045
projectProgramVersion: 1
@@ -1212,15 +1212,15 @@ Projects::
12121212
/a/tsconfig.json (Configured) *new*
12131213
projectStateVersion: 1
12141214
projectProgramVersion: 1
1215-
/b/tsconfig.json (Configured)
1215+
/b/tsconfig.json (Configured) *changed*
12161216
projectStateVersion: 2
12171217
projectProgramVersion: 1
12181218
dirty: true
1219-
noOpenRef: true
1220-
/user/tsconfig.json (Configured)
1219+
noOpenRef: false *changed*
1220+
/user/tsconfig.json (Configured) *changed*
12211221
projectStateVersion: 1
12221222
projectProgramVersion: 1
1223-
noOpenRef: true
1223+
noOpenRef: false *changed*
12241224
12251225
ScriptInfos::
12261226
/a/a.ts (Open) *changed*
@@ -1294,15 +1294,15 @@ Projects::
12941294
projectStateVersion: 1
12951295
projectProgramVersion: 1
12961296
noOpenRef: true *changed*
1297-
/b/tsconfig.json (Configured)
1297+
/b/tsconfig.json (Configured) *changed*
12981298
projectStateVersion: 2
12991299
projectProgramVersion: 1
13001300
dirty: true
1301-
noOpenRef: true
1302-
/user/tsconfig.json (Configured)
1301+
noOpenRef: true *changed*
1302+
/user/tsconfig.json (Configured) *changed*
13031303
projectStateVersion: 1
13041304
projectProgramVersion: 1
1305-
noOpenRef: true
1305+
noOpenRef: true *changed*
13061306
13071307
ScriptInfos::
13081308
/a/a.ts *changed*

tests/baselines/reference/tsserver/declarationFileMaps/navigateToAll-file-is-not-specified-but-project-is.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -882,10 +882,10 @@ FsWatchesRecursive::
882882
{}
883883

884884
Projects::
885-
/b/tsconfig.json (Configured)
885+
/b/tsconfig.json (Configured) *changed*
886886
projectStateVersion: 1
887887
projectProgramVersion: 1
888-
noOpenRef: true
888+
noOpenRef: false *changed*
889889
/user/tsconfig.json (Configured) *new*
890890
projectStateVersion: 1
891891
projectProgramVersion: 1

tests/baselines/reference/tsserver/declarationFileMaps/navigateToAll-neither-file-not-project-is-specified.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -882,10 +882,10 @@ FsWatchesRecursive::
882882
{}
883883

884884
Projects::
885-
/b/tsconfig.json (Configured)
885+
/b/tsconfig.json (Configured) *changed*
886886
projectStateVersion: 1
887887
projectProgramVersion: 1
888-
noOpenRef: true
888+
noOpenRef: false *changed*
889889
/user/tsconfig.json (Configured) *new*
890890
projectStateVersion: 1
891891
projectProgramVersion: 1

tests/baselines/reference/tsserver/declarationFileMaps/renameLocations.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -985,7 +985,6 @@ Projects::
985985
/a/tsconfig.json (Configured) *new*
986986
projectStateVersion: 1
987987
projectProgramVersion: 1
988-
noOpenRef: true
989988
/dev/null/inferredProject1* (Inferred) *changed*
990989
projectStateVersion: 1
991990
projectProgramVersion: 1
@@ -1073,10 +1072,10 @@ FsWatchesRecursive::
10731072
{}
10741073

10751074
Projects::
1076-
/a/tsconfig.json (Configured)
1075+
/a/tsconfig.json (Configured) *changed*
10771076
projectStateVersion: 1
10781077
projectProgramVersion: 1
1079-
noOpenRef: true
1078+
noOpenRef: true *changed*
10801079
/dev/null/inferredProject1* (Inferred) *changed*
10811080
projectStateVersion: 2 *changed*
10821081
projectProgramVersion: 1

0 commit comments

Comments
 (0)