From 67b3d54b37d61e054bc1e2bde6f99b109d998a56 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Wed, 26 Oct 2016 08:19:40 +0300 Subject: [PATCH] In case of IC failure rebuild all files since last build Before this change only files from last iteration were rebuilt. It is correct and optimal, but there are many diffs with JPS/Gradle logs. --- .../kotlin/incremental/IncrementalJvmCompilerRunner.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt index 2d7479c60af..3c42d86e0e2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt @@ -287,6 +287,7 @@ internal class IncrementalJvmCompilerRunner( BuildInfo.write(currentBuildInfo, lastBuildInfoFile) val buildDirtyLookupSymbols = HashSet() val buildDirtyFqNames = HashSet() + val allSourcesToCompile = HashSet() var exitCode = ExitCode.OK while (dirtySources.any()) { @@ -300,7 +301,10 @@ internal class IncrementalJvmCompilerRunner( reporter.report { "compile iteration: ${reporter.pathsAsString(sourcesToCompile)}" } } - val text = sourcesToCompile.map { it.canonicalPath }.joinToString(separator = System.getProperty("line.separator")) + // todo: more optimal to save only last iteration, but it will require adding standalone-ic specific logs + // (because jps rebuilds all files from last build if it failed and gradle rebuilds everything) + allSourcesToCompile.addAll(sourcesToCompile) + val text = allSourcesToCompile.map { it.canonicalPath }.joinToString(separator = System.getProperty("line.separator")) dirtySourcesSinceLastTimeFile.writeText(text) val compilerOutput = compileChanged(listOf(targetId), sourcesToCompile.toSet(), args, { caches.incrementalCache }, lookupTracker, messageCollector)