From 304a537c68e8788a97b679463416eee3b41d1bf1 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Mon, 4 Jun 2018 11:42:54 +0300 Subject: [PATCH] jps: fixes for KOTLIN-CR-2028 Original commit: c24aa13f127425f457f197266b22179e3f3c76f6 --- .../kotlin/jps/build/FSOperationsHelper.kt | 4 --- .../kotlin/jps/build/KotlinBuilder.kt | 18 +++++------ ...der.kt => KotlinDirtySourceFilesHolder.kt} | 6 ++-- .../jps/build/KotlinSourceRootProvider.kt | 19 ++++++++---- .../jps/build/MessageCollectorAdapter.kt | 3 +- .../jps/incremental/JpsIncrementalCache.kt | 4 ++- .../KotlinCommonModuleBuildTarget.kt | 8 ++--- .../platforms/KotlinJsModuleBuildTarget.kt | 19 +++--------- .../platforms/KotlinJvmModuleBuildTarget.kt | 8 ++--- .../jps/platforms/KotlinModuleBuildTarget.kt | 30 +++++++++---------- 10 files changed, 55 insertions(+), 64 deletions(-) rename jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/{KotlinRoundDirtySourceFilesHolder.kt => KotlinDirtySourceFilesHolder.kt} (96%) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/FSOperationsHelper.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/FSOperationsHelper.kt index 298d0d5947a..98e8dea6940 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/FSOperationsHelper.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/FSOperationsHelper.kt @@ -60,10 +60,6 @@ class FSOperationsHelper( markFilesImpl(files, beforeRound = true) { it.exists() && moduleBasedFilter.accept(it) } } - fun markComplementaryFiles(files: Iterable) { - markFilesImpl(files, beforeRound = true) { it.exists() } - } - fun markFiles(files: Iterable) { markFilesImpl(files, beforeRound = false) { it.exists() } } 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 4e08c2635a8..d645362972d 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 @@ -154,7 +154,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { context: CompileContext, fsOperations: FSOperationsHelper ) { - val roundDirtyFiles = KotlinRoundDirtySourceFilesHolder( + val roundDirtyFiles = KotlinDirtySourceFilesHolder( chunk, context, fsOperations, @@ -275,7 +275,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { return NOTHING_DONE } - val roundDirtyFilesHolder = KotlinRoundDirtySourceFilesHolder(chunk, context, fsOperations, dirtyFilesHolder) + val roundDirtyFilesHolder = KotlinDirtySourceFilesHolder(chunk, context, fsOperations, dirtyFilesHolder) val projectDescriptor = context.projectDescriptor val dataManager = projectDescriptor.dataManager val targets = chunk.targets @@ -502,7 +502,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { kotlinTarget: KotlinModuleBuildTarget, commonArguments: CommonCompilerArguments, context: CompileContext, - roundDirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, + dirtyFilesHolder: KotlinDirtySourceFilesHolder, environment: JpsCompilerEnvironment, incrementalCaches: Map ): OutputItemsCollector? { @@ -529,16 +529,16 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { if (IncrementalCompilation.isEnabled()) { for (target in chunk.targets) { val cache = incrementalCaches[target] - val targetDirtyFiles = roundDirtyFilesHolder.byTarget[target] + val targetDirtyFiles = dirtyFilesHolder.byTarget[target] if (cache != null && targetDirtyFiles != null) { val removedAndDirtyFiles: MutableSet = mutableSetOf() - removedAndDirtyFiles.addAll(roundDirtyFilesHolder.getDirtyFiles(target)) - removedAndDirtyFiles.addAll(roundDirtyFilesHolder.getRemovedFilesSet(target)) + removedAndDirtyFiles.addAll(dirtyFilesHolder.getDirtyFiles(target)) + removedAndDirtyFiles.addAll(dirtyFilesHolder.getRemovedFilesSet(target)) val complementaryFiles = cache.clearComplementaryFilesMapping(targetDirtyFiles.dirtyOrRemovedFiles) - targetDirtyFiles.addComplementaryFiles(complementaryFiles) + targetDirtyFiles.markDirtyForCurrentRound(complementaryFiles) cache.markDirty(targetDirtyFiles.dirtyOrRemovedFiles) } @@ -546,7 +546,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { } val isDoneSomething = kotlinTarget.compileModuleChunk( - chunk, commonArguments, roundDirtyFilesHolder, environment + chunk, commonArguments, dirtyFilesHolder, environment ) return if (isDoneSomething) environment.outputItemsCollector else null @@ -642,7 +642,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { private fun updateLookupStorage( lookupTracker: LookupTracker, dataManager: BuildDataManager, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder + dirtyFilesHolder: KotlinDirtySourceFilesHolder ) { if (lookupTracker !is LookupTrackerImpl) throw AssertionError("Lookup tracker is expected to be LookupTrackerImpl, got ${lookupTracker::class.java}") diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinRoundDirtySourceFilesHolder.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinDirtySourceFilesHolder.kt similarity index 96% rename from jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinRoundDirtySourceFilesHolder.kt rename to jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinDirtySourceFilesHolder.kt index 0e4bba6e72b..32d14221e6d 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinRoundDirtySourceFilesHolder.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinDirtySourceFilesHolder.kt @@ -32,7 +32,7 @@ import java.io.File * * Probably should be merged with [FSOperationsHelper] */ -class KotlinRoundDirtySourceFilesHolder( +class KotlinDirtySourceFilesHolder( val chunk: ModuleChunk, val context: CompileContext, val fsOperations: FSOperationsHelper, @@ -51,8 +51,8 @@ class KotlinRoundDirtySourceFilesHolder( return result } - fun addComplementaryFiles(files: Collection) { - fsOperations.markComplementaryFiles(files) + fun markDirtyForCurrentRound(files: Collection) { + fsOperations.markFilesBeforeInitialRound(files) files.forEach { dirty.add(DirtyFile(it, null)) } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinSourceRootProvider.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinSourceRootProvider.kt index 09f8b6de82d..c6e8bb87887 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinSourceRootProvider.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinSourceRootProvider.kt @@ -11,17 +11,24 @@ import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor import org.jetbrains.jps.builders.storage.BuildDataPaths import org.jetbrains.jps.incremental.ModuleBuildTarget +import org.jetbrains.jps.model.java.JavaResourceRootType import org.jetbrains.jps.model.java.JavaSourceRootProperties import org.jetbrains.jps.model.java.JavaSourceRootType import org.jetbrains.jps.model.module.JpsModule import org.jetbrains.jps.model.module.JpsModuleSourceRootType +import org.jetbrains.kotlin.config.KotlinResourceRootType import org.jetbrains.kotlin.config.KotlinSourceRootType import org.jetbrains.kotlin.jps.model.expectedByModules import java.io.File /** - * - adds roots with KotlinSourceRootType + * - adds roots with KotlinSourceRootType as JavaSourceRootDescriptor (see note below) * - for Multiplatform Projects: adds all the source roots of the expectedBy modules to the platform modules. + * + * Note: `KotlinSourceRootType` cannot be supported directly, since `SourceRootDescriptors` are computed by + * `ModuleBuildTarget.computeAllTargets`. `ModuleBuildTarget` is required for incremental compilation. + * We cannot define our own `ModuleBuildTarget` since it is final and `ModuleBuildTarget` supports only `JavaSourceRootDescriptor`. + * So the only one way to support `KotlinSourceRootType` is to add a fake `JavaSourceRootDescriptor` for each source root with that type. */ class KotlinSourceRootProvider : AdditionalRootsProviderService(JavaModuleBuildTargetType.ALL_TYPES) { override fun getAdditionalRoots( @@ -63,12 +70,11 @@ class KotlinSourceRootProvider : AdditionalRootsProviderService.isTestsRootType get() = when (this) { is KotlinSourceRootType -> this == KotlinSourceRootType.TestSource - is JavaSourceRootType -> this == JavaSourceRootType.TEST_SOURCE // for compatibility + is KotlinResourceRootType -> this == KotlinResourceRootType.TestResource + // for compatibility: + is JavaSourceRootType -> this == JavaSourceRootType.TEST_SOURCE + is JavaResourceRootType -> this == JavaResourceRootType.TEST_RESOURCE else -> null } - class KotlinCommonModuleSourceRoot( - val commonModule: JpsModule, root: File, target: ModuleBuildTarget, isGenerated: Boolean, diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/MessageCollectorAdapter.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/MessageCollectorAdapter.kt index 86f692bcbb0..3313accdc07 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/MessageCollectorAdapter.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/MessageCollectorAdapter.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.config.CompilerRunnerConstants import org.jetbrains.kotlin.jps.platforms.KotlinModuleBuildTarget +import java.io.File class MessageCollectorAdapter( private val context: CompileContext, @@ -31,7 +32,7 @@ class MessageCollectorAdapter( val kind = kind(severity) if (kind != null) { // Report target when cross-compiling common files - if (location != null && kotlinTarget != null && kotlinTarget.isCommonModuleFile(location.path)) { + if (location != null && kotlinTarget != null && kotlinTarget.isCommonModuleFile(File(location.path))) { val moduleName = kotlinTarget.module.name prefix += "[$moduleName] " } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsIncrementalCache.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsIncrementalCache.kt index 6306c9eb171..9d9ac955e5f 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsIncrementalCache.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsIncrementalCache.kt @@ -37,7 +37,9 @@ class JpsIncrementalJvmCache( paths: BuildDataPaths ) : IncrementalJvmCache(paths.getTargetDataRoot(target), target.outputDir), JpsIncrementalCache { override fun addJpsDependentCache(cache: JpsIncrementalCache) { - addDependentCache(cache as JpsIncrementalJvmCache) + if (cache is JpsIncrementalJvmCache) { + addDependentCache(cache) + } } override fun debugLog(message: String) { diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinCommonModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinCommonModuleBuildTarget.kt index 74ad52a3caa..0ec0a5c4f5d 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinCommonModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinCommonModuleBuildTarget.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.jps.platforms -import com.intellij.util.xmlb.XmlSerializerUtil import org.jetbrains.jps.ModuleChunk import org.jetbrains.jps.builders.storage.BuildDataPaths import org.jetbrains.jps.incremental.CompileContext @@ -15,10 +14,9 @@ import org.jetbrains.jps.model.module.JpsModule import org.jetbrains.jps.util.JpsPathUtil import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments -import org.jetbrains.kotlin.cli.common.arguments.mergeBeans import org.jetbrains.kotlin.compilerRunner.JpsCompilerEnvironment import org.jetbrains.kotlin.compilerRunner.JpsKotlinCompilerRunner -import org.jetbrains.kotlin.jps.build.KotlinRoundDirtySourceFilesHolder +import org.jetbrains.kotlin.jps.build.KotlinDirtySourceFilesHolder import org.jetbrains.kotlin.jps.incremental.JpsIncrementalJvmCache import org.jetbrains.kotlin.jps.model.k2MetadataCompilerArguments import org.jetbrains.kotlin.jps.model.kotlinCompilerSettings @@ -29,7 +27,7 @@ class KotlinCommonModuleBuildTarget(context: CompileContext, jpsModuleBuildTarge override fun compileModuleChunk( chunk: ModuleChunk, commonArguments: CommonCompilerArguments, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, + dirtyFilesHolder: KotlinDirtySourceFilesHolder, environment: JpsCompilerEnvironment ): Boolean { reportAndSkipCircular(chunk, environment) @@ -81,7 +79,7 @@ class KotlinCommonModuleBuildTarget(context: CompileContext, jpsModuleBuildTarge if (dependencyBuildTarget != this@KotlinCommonModuleBuildTarget && dependencyBuildTarget is KotlinCommonModuleBuildTarget && - dependencyBuildTarget.sourceFiles.isNotEmpty() + dependencyBuildTarget.sources.isNotEmpty() ) { result.add(dependencyBuildTarget.destination) } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinJsModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinJsModuleBuildTarget.kt index 819f38be4ef..27739eb4f28 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinJsModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinJsModuleBuildTarget.kt @@ -22,11 +22,8 @@ import org.jetbrains.kotlin.incremental.ChangesCollector import org.jetbrains.kotlin.incremental.IncrementalJsCache import org.jetbrains.kotlin.incremental.components.ExpectActualTracker import org.jetbrains.kotlin.incremental.components.LookupTracker -import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider -import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer -import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumerImpl -import org.jetbrains.kotlin.incremental.js.TranslationResultValue -import org.jetbrains.kotlin.jps.build.KotlinRoundDirtySourceFilesHolder +import org.jetbrains.kotlin.incremental.js.* +import org.jetbrains.kotlin.jps.build.KotlinDirtySourceFilesHolder import org.jetbrains.kotlin.jps.incremental.JpsIncrementalCache import org.jetbrains.kotlin.jps.incremental.JpsIncrementalJsCache import org.jetbrains.kotlin.jps.model.k2JsCompilerArguments @@ -39,14 +36,6 @@ import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils.META_JS_SUFFIX import java.io.File import java.net.URI -internal class IncrementalDataProviderFromCache(private val cache: IncrementalJsCache) : IncrementalDataProvider { - override val headerMetadata: ByteArray - get() = cache.header - - override val compiledPackageParts: Map - get() = cache.nonDirtyPackageParts() -} - class KotlinJsModuleBuildTarget(compileContext: CompileContext, jpsModuleBuildTarget: ModuleBuildTarget) : KotlinModuleBuildTarget(compileContext, jpsModuleBuildTarget) { @@ -81,7 +70,7 @@ class KotlinJsModuleBuildTarget(compileContext: CompileContext, jpsModuleBuildTa override fun compileModuleChunk( chunk: ModuleChunk, commonArguments: CommonCompilerArguments, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, + dirtyFilesHolder: KotlinDirtySourceFilesHolder, environment: JpsCompilerEnvironment ): Boolean { require(chunk.representativeTarget() == jpsModuleBuildTarget) @@ -188,7 +177,7 @@ class KotlinJsModuleBuildTarget(compileContext: CompileContext, jpsModuleBuildTa if (dependencyBuildTarget != this@KotlinJsModuleBuildTarget && dependencyBuildTarget is KotlinJsModuleBuildTarget && - dependencyBuildTarget.sourceFiles.isNotEmpty() + dependencyBuildTarget.sources.isNotEmpty() ) { val metaFile = dependencyBuildTarget.outputMetaFile if (metaFile.exists()) { diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinJvmModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinJvmModuleBuildTarget.kt index dca8457cec1..f2a97806dd4 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinJvmModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinJvmModuleBuildTarget.kt @@ -34,7 +34,7 @@ import org.jetbrains.kotlin.incremental.* import org.jetbrains.kotlin.incremental.components.ExpectActualTracker import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.jps.build.KotlinBuilder -import org.jetbrains.kotlin.jps.build.KotlinRoundDirtySourceFilesHolder +import org.jetbrains.kotlin.jps.build.KotlinDirtySourceFilesHolder import org.jetbrains.kotlin.jps.build.jvmBuildMetaInfoFile import org.jetbrains.kotlin.jps.incremental.JpsIncrementalCache import org.jetbrains.kotlin.jps.incremental.JpsIncrementalJvmCache @@ -121,7 +121,7 @@ class KotlinJvmModuleBuildTarget(compileContext: CompileContext, jpsModuleBuildT override fun compileModuleChunk( chunk: ModuleChunk, commonArguments: CommonCompilerArguments, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, + dirtyFilesHolder: KotlinDirtySourceFilesHolder, environment: JpsCompilerEnvironment ): Boolean { if (chunk.modules.size > 1) { @@ -174,7 +174,7 @@ class KotlinJvmModuleBuildTarget(compileContext: CompileContext, jpsModuleBuildT return true } - fun generateModuleDescription(chunk: ModuleChunk, dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder): File? { + fun generateModuleDescription(chunk: ModuleChunk, dirtyFilesHolder: KotlinDirtySourceFilesHolder): File? { val builder = KotlinModuleXmlBuilder() var hasDirtySources = false @@ -294,7 +294,7 @@ class KotlinJvmModuleBuildTarget(compileContext: CompileContext, jpsModuleBuildT override fun updateChunkMappings( chunk: ModuleChunk, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, + dirtyFilesHolder: KotlinDirtySourceFilesHolder, outputItems: Map>, incrementalCaches: Map ) { diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinModuleBuildTarget.kt index e5db4555619..d532cad5fbd 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/platforms/KotlinModuleBuildTarget.kt @@ -11,7 +11,6 @@ import org.jetbrains.jps.incremental.CompileContext import org.jetbrains.jps.incremental.ModuleBuildTarget import org.jetbrains.jps.incremental.ProjectBuildException import org.jetbrains.jps.incremental.storage.BuildDataManager -import org.jetbrains.jps.model.java.JavaSourceRootType import org.jetbrains.jps.model.java.JpsJavaClasspathKind import org.jetbrains.jps.model.java.JpsJavaExtensionService import org.jetbrains.jps.model.module.JpsModule @@ -79,7 +78,7 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul result.addIfNotNull(context.kotlinBuildTargets[relatedProductionModule?.productionBuildTarget]) } - return result.filter { it.sourceFiles.isNotEmpty() } + return result.filter { it.sources.isNotEmpty() } } val friendOutputDirs: List @@ -95,13 +94,13 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul .includedIn(JpsJavaClasspathKind.compile(isTests)) } - val sources by lazy { - mutableMapOf().also { result -> + val sources: Map by lazy { + mutableMapOf().also { result -> collectSources(result) } } - private fun collectSources(receiver: MutableMap) { + private fun collectSources(receiver: MutableMap) { val moduleExcludes = module.excludeRootsList.urls.mapTo(java.util.HashSet(), JpsPathUtil::urlToFile) val compilerExcludes = JpsJavaExtensionService.getInstance() @@ -117,7 +116,7 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul .onEnter { file -> file !in moduleExcludes } .forEach { file -> if (!compilerExcludes.isExcluded(file) && file.isFile && file.isKotlinSourceFile) { - receiver[file.path] = Source(file, isCommonRoot) + receiver[file] = Source(file, isCommonRoot) } } @@ -132,11 +131,10 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul val isCommonModule: Boolean ) - fun isCommonModuleFile(path: String): Boolean = sources[path]?.isCommonModule == true + fun isCommonModuleFile(file: File): Boolean = sources[file]?.isCommonModule == true - val sourceFiles by lazy { - sources.values.map { it.file } - } + val sourceFiles: Collection + get() = sources.values.map { it.file } override fun toString() = jpsModuleBuildTarget.toString() @@ -146,7 +144,7 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul abstract fun compileModuleChunk( chunk: ModuleChunk, commonArguments: CommonCompilerArguments, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, + dirtyFilesHolder: KotlinDirtySourceFilesHolder, environment: JpsCompilerEnvironment ): Boolean @@ -183,7 +181,7 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul */ open fun updateChunkMappings( chunk: ModuleChunk, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, + dirtyFilesHolder: KotlinDirtySourceFilesHolder, outputItems: Map>, incrementalCaches: Map ) { @@ -217,7 +215,7 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul } } - protected fun collectSourcesToCompile(dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder) = + protected fun collectSourcesToCompile(dirtyFilesHolder: KotlinDirtySourceFilesHolder) = collectSourcesToCompile(this, dirtyFilesHolder) /** @@ -225,7 +223,7 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul */ protected fun collectSourcesToCompile( target: KotlinModuleBuildTarget, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder + dirtyFilesHolder: KotlinDirtySourceFilesHolder ): Collection { // Should not be cached since may be vary in different rounds @@ -234,7 +232,7 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul else target.sourceFiles } - protected fun checkShouldCompileAndLog(dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, moduleSources: Collection) = + protected fun checkShouldCompileAndLog(dirtyFilesHolder: KotlinDirtySourceFilesHolder, moduleSources: Collection) = checkShouldCompileAndLog(this, dirtyFilesHolder, moduleSources) /** @@ -242,7 +240,7 @@ abstract class KotlinModuleBuildTarget(val context: CompileContext, val jpsModul */ protected fun checkShouldCompileAndLog( target: KotlinModuleBuildTarget, - dirtyFilesHolder: KotlinRoundDirtySourceFilesHolder, + dirtyFilesHolder: KotlinDirtySourceFilesHolder, moduleSources: Collection ): Boolean { val hasRemovedSources = dirtyFilesHolder.getRemovedFiles(target.jpsModuleBuildTarget).isNotEmpty()