@@ -79,9 +79,9 @@ public final actor SemanticIndexManager {
7979 /// ...). `nil` if no build graph is currently being generated.
8080 private var generateBuildGraphTask : Task < Void , Never > ?
8181
82- private let preparationUpToDateStatus = IndexUpToDateStatusManager < ConfiguredTarget > ( )
82+ private let preparationUpToDateTracker = UpToDateTracker < ConfiguredTarget > ( )
8383
84- private let indexStoreUpToDateStatus = IndexUpToDateStatusManager < DocumentURI > ( )
84+ private let indexStoreUpToDateTracker = UpToDateTracker < DocumentURI > ( )
8585
8686 /// The preparation tasks that have been started and are either scheduled in the task scheduler or currently
8787 /// executing.
@@ -273,23 +273,23 @@ public final actor SemanticIndexManager {
273273 // We only re-index the files that were changed and don't re-index any of their dependencies. See the
274274 // `Documentation/Files_To_Reindex.md` file.
275275 let changedFiles = events. map ( \. uri)
276- await indexStoreUpToDateStatus . markOutOfDate ( changedFiles)
276+ await indexStoreUpToDateTracker . markOutOfDate ( changedFiles)
277277
278278 // Note that configured targets are the right abstraction layer here (instead of a non-configured target) because a
279279 // build system might have targets that include different source files. Hence a source file might be in target T
280280 // configured for macOS but not in target T configured for iOS.
281281 let targets = await changedFiles. asyncMap { await buildSystemManager. configuredTargets ( for: $0) } . flatMap { $0 }
282282 if let dependentTargets = await buildSystemManager. targets ( dependingOn: targets) {
283- await preparationUpToDateStatus . markOutOfDate ( dependentTargets)
283+ await preparationUpToDateTracker . markOutOfDate ( dependentTargets)
284284 } else {
285- await preparationUpToDateStatus . markAllOutOfDate ( )
285+ await preparationUpToDateTracker . markAllKnownOutOfDate ( )
286286 // `markAllOutOfDate` only marks targets out-of-date that have been indexed before. Also mark all targets with
287287 // in-progress preparation out of date. So we don't get into the following situation, which would result in an
288288 // incorrect up-to-date status of a target
289289 // - Target preparation starts for the first time
290290 // - Files changed
291291 // - Target preparation finishes.
292- await preparationUpToDateStatus . markOutOfDate ( inProgressPreparationTasks. keys)
292+ await preparationUpToDateTracker . markOutOfDate ( inProgressPreparationTasks. keys)
293293 }
294294
295295 await scheduleBackgroundIndex ( files: changedFiles)
@@ -367,7 +367,7 @@ public final actor SemanticIndexManager {
367367 // schedule two preparations of the same target in quick succession, only the first one actually performs a prepare
368368 // and the second one will be a no-op once it runs.
369369 let targetsToPrepare = await targets. asyncFilter {
370- await !preparationUpToDateStatus . isUpToDate ( $0)
370+ await !preparationUpToDateTracker . isUpToDate ( $0)
371371 }
372372
373373 guard !targetsToPrepare. isEmpty else {
@@ -378,7 +378,7 @@ public final actor SemanticIndexManager {
378378 PreparationTaskDescription (
379379 targetsToPrepare: targetsToPrepare,
380380 buildSystemManager: self . buildSystemManager,
381- preparationUpToDateStatus : preparationUpToDateStatus ,
381+ preparationUpToDateTracker : preparationUpToDateTracker ,
382382 indexProcessDidProduceResult: indexProcessDidProduceResult,
383383 testHooks: testHooks
384384 )
@@ -425,7 +425,7 @@ public final actor SemanticIndexManager {
425425 filesToIndex: filesAndTargets,
426426 buildSystemManager: self . buildSystemManager,
427427 index: index,
428- indexStoreUpToDateStatus : indexStoreUpToDateStatus ,
428+ indexStoreUpToDateTracker : indexStoreUpToDateTracker ,
429429 indexProcessDidProduceResult: indexProcessDidProduceResult,
430430 testHooks: testHooks
431431 )
@@ -470,7 +470,7 @@ public final actor SemanticIndexManager {
470470 // schedule two indexing jobs for the same file in quick succession, only the first one actually updates the index
471471 // store and the second one will be a no-op once it runs.
472472 let outOfDateFiles = await filesToIndex ( toCover: files) . asyncFilter {
473- if await indexStoreUpToDateStatus . isUpToDate ( $0. sourceFile) {
473+ if await indexStoreUpToDateTracker . isUpToDate ( $0. sourceFile) {
474474 return false
475475 }
476476 guard let language = await buildSystemManager. defaultLanguage ( for: $0. mainFile) ,
0 commit comments