From 6b5739bd6a7db19791b88aff6a2f55cc640c27dc Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Mon, 12 Aug 2019 09:00:40 +0300 Subject: [PATCH] Gradle, ProcessedFilesCache: don't report on clashes with for targets with removed source --- .../gradle/internal/ProcessedFilesCache.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/ProcessedFilesCache.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/ProcessedFilesCache.kt index 20e5e392117..6dd4b70f1f8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/ProcessedFilesCache.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/ProcessedFilesCache.kt @@ -153,6 +153,14 @@ internal open class ProcessedFilesCache( byTarget[target] = element } } + + fun remove(element: Element) { + if (element.target != null) { + byTarget.remove(element.target) + } + + byHash.values.removeIf { it == element } + } } class Element( @@ -199,8 +207,13 @@ internal open class ProcessedFilesCache( val key = compute()?.relativeTo(targetDir)?.toString() val existedTarget = state.byTarget[key] if (key != null && existedTarget != null) { - if (existedTarget.src != file.canonicalPath) { - reportTargetClash(key, file, File(existedTarget.src)) + if (File(existedTarget.src).exists()) { + if (existedTarget.src != file.canonicalPath) { + reportTargetClash(key, file, File(existedTarget.src)) + } + } else { + project.logger.warn("Removing cache for removed source `${existedTarget.src}`") + state.remove(existedTarget) } } state[hash] = Element(file.canonicalPath, key)