fixup wip
diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt index fa67e49..7b3407f 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt
@@ -114,9 +114,13 @@ if (it == ExitCode.OK) { performWorkAfterSuccessfulCompilation(caches) } + doCloseCaches(caches, args) } - } finally { - doCloseCaches(caches, args) + } catch (e: Throwable) { + reporter.measure(BuildTime.CLEAR_OUTPUT_ON_REBUILD) { + cleanOutputsAndLocalStateOnRebuild(args) + } + throw e } } @@ -129,6 +133,15 @@ abiSnapshot: AbiSnapshot?, classpathAbiSnapshot: Map<String, AbiSnapshot> ): ExitCode { + val abiSnapshot = if (compilationMode is CompilationMode.Incremental && withAbiSnapshot) { + AbiSnapshotImpl.read(abiSnapshotFile, reporter) + } else { + if (withAbiSnapshot) { + compilationMode = CompilationMode.Rebuild(BuildAttribute.NO_ABI_SNAPSHOT) + } + null + } + val exitCode = if (withAbiSnapshot) { compileIncrementally( args, caches, allSourceFiles, compilationMode, messageCollector, @@ -177,14 +190,6 @@ } var compilationMode = sourcesToCompile(caches, changedFiles, args, messageCollector, classpathAbiSnapshot) - val abiSnapshot = if (compilationMode is CompilationMode.Incremental && withAbiSnapshot) { - AbiSnapshotImpl.read(abiSnapshotFile, reporter) - } else { - if (withAbiSnapshot) { - compilationMode = CompilationMode.Rebuild(BuildAttribute.NO_ABI_SNAPSHOT) - } - null - } when (compilationMode) { is CompilationMode.Incremental -> { @@ -211,6 +216,10 @@ reporter.report { "Incremental compilation analysis failed: ${e.stackTraceToString()}.\nFalling back to non-incremental compilation." } + + reporter.measure(BuildTime.CLEAR_OUTPUT_ON_REBUILD) { + cleanOutputsAndLocalStateOnRebuild(args) + } } finally { doCloseCaches(caches, args) }