diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 9681dd830a3..b05ca427777 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -171,9 +171,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR return CHUNK_REBUILD_REQUIRED } - if ((dirtyFilesHolder.hasDirtyFiles() || dirtyFilesHolder.hasRemovedFiles()) && - hasKotlinDirtyOrRemovedFiles(dirtyFilesHolder, chunk) - ) { + if (hasKotlinDirtyOrRemovedFiles(dirtyFilesHolder, chunk)) { targets.forEach { setHasKotlin(it, dataManager.dataPaths) } } else { @@ -828,11 +826,11 @@ private fun hasKotlinDirtyOrRemovedFiles( dirtyFilesHolder: DirtyFilesHolder, chunk: ModuleChunk ): Boolean { - if (!KotlinSourceFileCollector.getDirtySourceFiles(dirtyFilesHolder).isEmpty()) { - return true - } + if (!dirtyFilesHolder.hasDirtyFiles() && !dirtyFilesHolder.hasRemovedFiles()) return false - return chunk.getTargets().any { !KotlinSourceFileCollector.getRemovedKotlinFiles(dirtyFilesHolder, it).isEmpty() } + if (!KotlinSourceFileCollector.getDirtySourceFiles(dirtyFilesHolder).isEmpty) return true + + return chunk.targets.any { KotlinSourceFileCollector.getRemovedKotlinFiles(dirtyFilesHolder, it).isNotEmpty() } } public open class GeneratedFile internal constructor(