diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 6270b13249c..aa6bc4be271 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -468,7 +468,13 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { for ((target, files) in generatedFiles) { val kotlinModuleBuilderTarget = kotlinContext.targetsBinding[target]!! - kotlinModuleBuilderTarget.updateCaches(incrementalCaches[kotlinModuleBuilderTarget]!!, files, changesCollector, environment) + kotlinModuleBuilderTarget.updateCaches( + kotlinDirtyFilesHolder, + incrementalCaches[kotlinModuleBuilderTarget]!!, + files, + changesCollector, + environment + ) } updateLookupStorage(lookupTracker, dataManager, kotlinDirtyFilesHolder) @@ -512,7 +518,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { val targetDirtyFiles = dirtyFilesHolder.byTarget[jpsTarget] if (cache != null && targetDirtyFiles != null) { - val complementaryFiles = cache.clearComplementaryFilesMapping( + val complementaryFiles = cache.getComplementaryFilesRecursive( targetDirtyFiles.dirty.keys + targetDirtyFiles.removed ) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJsModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJsModuleBuildTarget.kt index f75403afbe3..9b805a8e6a6 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJsModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJsModuleBuildTarget.kt @@ -211,12 +211,13 @@ class KotlinJsModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleBu JpsIncrementalJsCache(jpsModuleBuildTarget, paths) override fun updateCaches( + dirtyFilesHolder: KotlinDirtySourceFilesHolder, jpsIncrementalCache: JpsIncrementalCache, files: List, changesCollector: ChangesCollector, environment: JpsCompilerEnvironment ) { - super.updateCaches(jpsIncrementalCache, files, changesCollector, environment) + super.updateCaches(dirtyFilesHolder, jpsIncrementalCache, files, changesCollector, environment) val incrementalResults = environment.services[IncrementalResultsConsumer::class.java] as IncrementalResultsConsumerImpl diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt index 8c719a3901d..e5c5653819b 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt @@ -254,12 +254,13 @@ class KotlinJvmModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleB } override fun updateCaches( + dirtyFilesHolder: KotlinDirtySourceFilesHolder, jpsIncrementalCache: JpsIncrementalCache, files: List, changesCollector: ChangesCollector, environment: JpsCompilerEnvironment ) { - super.updateCaches(jpsIncrementalCache, files, changesCollector, environment) + super.updateCaches(dirtyFilesHolder, jpsIncrementalCache, files, changesCollector, environment) updateIncrementalCache(files, jpsIncrementalCache as IncrementalJvmCache, changesCollector, null) } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinModuleBuildTarget.kt index 3e66c6a8662..1f463220131 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinModuleBuildTarget.kt @@ -27,11 +27,11 @@ import org.jetbrains.kotlin.incremental.ChangesCollector import org.jetbrains.kotlin.incremental.ExpectActualTrackerImpl import org.jetbrains.kotlin.incremental.components.ExpectActualTracker import org.jetbrains.kotlin.incremental.components.LookupTracker +import org.jetbrains.kotlin.jps.build.* import org.jetbrains.kotlin.jps.incremental.CacheAttributesDiff +import org.jetbrains.kotlin.jps.incremental.JpsIncrementalCache import org.jetbrains.kotlin.jps.incremental.loadDiff import org.jetbrains.kotlin.jps.incremental.localCacheVersionManager -import org.jetbrains.kotlin.jps.build.* -import org.jetbrains.kotlin.jps.incremental.JpsIncrementalCache import org.jetbrains.kotlin.jps.model.productionOutputFilePath import org.jetbrains.kotlin.jps.model.testOutputFilePath import org.jetbrains.kotlin.modules.TargetId @@ -246,13 +246,17 @@ abstract class KotlinModuleBuildTarget intern } open fun updateCaches( + dirtyFilesHolder: KotlinDirtySourceFilesHolder, jpsIncrementalCache: JpsIncrementalCache, files: List, changesCollector: ChangesCollector, environment: JpsCompilerEnvironment ) { + val changedAndRemovedFiles = dirtyFilesHolder.getDirtyFiles(jpsModuleBuildTarget).keys + + dirtyFilesHolder.getRemovedFiles(jpsModuleBuildTarget) val expectActualTracker = environment.services[ExpectActualTracker::class.java] as ExpectActualTrackerImpl - jpsIncrementalCache.registerComplementaryFiles(expectActualTracker) + + jpsIncrementalCache.updateComplementaryFiles(changedAndRemovedFiles,expectActualTracker) } open fun makeServices(