[Gradle, JS] Remove check on duplicated targets

Useful (for KT-33828), if provider of artifact has changed, but remained only one

#KT-33828 fixed
This commit is contained in:
Ilya Goncharov
2019-10-29 19:31:56 +03:00
parent 1074a0ef69
commit eeadc95bc1
@@ -12,7 +12,6 @@ import com.google.gson.stream.JsonWriter
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.internal.project.ProjectInternal import org.gradle.api.internal.project.ProjectInternal
import org.gradle.internal.hash.FileHasher import org.gradle.internal.hash.FileHasher
import org.jetbrains.kotlin.daemon.common.toHexString
import java.io.File import java.io.File
/** /**
@@ -163,7 +162,7 @@ internal open class ProcessedFilesCache(
} }
} }
class Element( data class Element(
val src: String, val src: String,
val target: String? val target: String?
) )
@@ -207,11 +206,7 @@ internal open class ProcessedFilesCache(
val key = compute()?.relativeTo(targetDir)?.toString() val key = compute()?.relativeTo(targetDir)?.toString()
val existedTarget = state.byTarget[key] val existedTarget = state.byTarget[key]
if (key != null && existedTarget != null) { if (key != null && existedTarget != null) {
if (File(existedTarget.src).exists()) { 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}`") project.logger.warn("Removing cache for removed source `${existedTarget.src}`")
state.remove(existedTarget) state.remove(existedTarget)
} }
@@ -221,14 +216,11 @@ internal open class ProcessedFilesCache(
return key return key
} }
fun checkTarget(target: String?): Boolean { private fun checkTarget(target: String?): Boolean {
if (target == null) return true if (target == null) return true
return targetDir.resolve(target).exists() return targetDir.resolve(target).exists()
} }
protected open fun reportTargetClash(target: String, existedSrc: File, newSrc: File): Nothing =
error("Both `$existedSrc` and `$newSrc` produces `$target`")
override fun close() { override fun close() {
stateFile.parentFile.mkdirs() stateFile.parentFile.mkdirs()
gson.newJsonWriter(stateFile.writer()).use { gson.newJsonWriter(stateFile.writer()).use {