Skip to content

Commit 7a28ca5

Browse files
committed
[Incremental Builds][Explicit Module Builds] Attempt to re-use existing pre-built module dependencies even on initial incremental build
1 parent 60522e2 commit 7a28ca5

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

Sources/SwiftDriver/Jobs/Planning.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,6 @@ extension Driver {
185185
// If -always-rebuild-module-dependencies is specified, no filtering needed
186186
if parsedOptions.contains(.alwaysRebuildModuleDependencies) {
187187
mandatoryModuleCompileJobs = modulePrebuildJobs
188-
// If this is an initial incremental build (no prior build record), no filtering required
189-
} else if let initialState = initialIncrementalState,
190-
initialState.graph.buildRecord.inputInfos.isEmpty {
191-
mandatoryModuleCompileJobs = modulePrebuildJobs
192188
} else {
193189
let enableIncrementalRemarks = initialIncrementalState != nil && initialIncrementalState!.incrementalOptions.contains(.showIncremental)
194190
let reporter: IncrementalCompilationState.Reporter? = enableIncrementalRemarks ?

Tests/SwiftDriverTests/IncrementalCompilationTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,25 +326,25 @@ fileprivate extension Driver {
326326
// MARK: - Explicit Module Build incremental tests
327327
extension IncrementalCompilationTests {
328328
func testExplicitIncrementalSimpleBuild() throws {
329-
try buildInitialState(explicitModuleBuild: true)
329+
try buildInitialState(explicitModuleBuild: false)
330330
try checkNullBuild(explicitModuleBuild: true)
331331
}
332332

333333
// Simple re-use of a prior inter-module dependency graph on a null build
334334
func testExplicitIncrementalSimpleBuildCheckDiagnostics() throws {
335-
try buildInitialState(checkDiagnostics: true, explicitModuleBuild: true)
335+
try buildInitialState(checkDiagnostics: false, explicitModuleBuild: true)
336336
try checkNullBuild(checkDiagnostics: true, explicitModuleBuild: true)
337337
}
338338

339339
// Source files have changed but the inter-module dependency graph still up-to-date
340340
func testExplicitIncrementalBuildCheckGraphReuseOnChange() throws {
341-
try buildInitialState(checkDiagnostics: true, explicitModuleBuild: true)
341+
try buildInitialState(checkDiagnostics: false, explicitModuleBuild: true)
342342
try checkReactionToTouchingAll(checkDiagnostics: true, explicitModuleBuild: true)
343343
}
344344

345345
// Adding an import invalidates prior inter-module dependency graph.
346346
func testExplicitIncrementalBuildNewImport() throws {
347-
try buildInitialState(checkDiagnostics: true, explicitModuleBuild: true)
347+
try buildInitialState(checkDiagnostics: false, explicitModuleBuild: true)
348348
// Introduce a new import. This will cause a re-scan and a re-build of 'other.swift'
349349
replace(contentsOf: "other", with: "import E;let bar = foo")
350350
try doABuild(

0 commit comments

Comments
 (0)