Fix inter-project IC with new MPP for JS/JVM targets

#KT-26275 Fixed
   #KT-29966 Fixed
This commit is contained in:
Alexey Tsvetkov
2019-02-04 13:24:38 +03:00
parent 5786ab5140
commit f38ad0fe8a
25 changed files with 215 additions and 5 deletions
@@ -24,7 +24,7 @@ class IncrementalModuleInfo(
val dirToModule: Map<File, IncrementalModuleEntry>,
val nameToModules: Map<String, Set<IncrementalModuleEntry>>,
val jarToClassListFile: Map<File, File>,
// only for js
// only for js and mpp
val jarToModule: Map<File, IncrementalModuleEntry>
) : Serializable {
companion object {
@@ -91,6 +91,11 @@ abstract class ModulesApiHistoryBase(protected val modulesInfo: IncrementalModul
class ModulesApiHistoryJvm(modulesInfo: IncrementalModuleInfo) : ModulesApiHistoryBase(modulesInfo) {
override fun getBuildHistoryFilesForJar(jar: File): Either<Set<File>> {
val moduleInfoFromJar = modulesInfo.jarToModule[jar]
if (moduleInfoFromJar != null) {
return Either.Success(setOf(moduleInfoFromJar.buildHistoryFile))
}
val classListFile = modulesInfo.jarToClassListFile[jar] ?: return Either.Error("Unknown jar: $jar")
if (!classListFile.isFile) return Either.Error("Class list file does not exist $classListFile")