diff --git a/build/src/org/jetbrains/kotlin/incremental/IncrementalCacheImpl.kt b/build/src/org/jetbrains/kotlin/incremental/IncrementalCacheImpl.kt index bf21c709fb5..5ae2087ab18 100644 --- a/build/src/org/jetbrains/kotlin/incremental/IncrementalCacheImpl.kt +++ b/build/src/org/jetbrains/kotlin/incremental/IncrementalCacheImpl.kt @@ -496,8 +496,7 @@ open class IncrementalCacheImpl( override fun dumpValue(value: String): String = value } - // TODO: find how to deal with PathStringDescriptor - it seems too deeply rooted in jps - inner class SourceToClassesMap(storageFile: File) : BasicStringMap>(storageFile, /* PathStringDescriptor.INSTANCE,*/ StringCollectionExternalizer) { + inner class SourceToClassesMap(storageFile: File) : BasicStringMap>(storageFile, PathStringDescriptor, StringCollectionExternalizer) { fun clearOutputsForSource(sourceFile: File) { remove(sourceFile.absolutePath) } diff --git a/build/src/org/jetbrains/kotlin/incremental/storage/externalizers.kt b/build/src/org/jetbrains/kotlin/incremental/storage/externalizers.kt index f8d3f1be299..e4fe07a65be 100644 --- a/build/src/org/jetbrains/kotlin/incremental/storage/externalizers.kt +++ b/build/src/org/jetbrains/kotlin/incremental/storage/externalizers.kt @@ -171,6 +171,12 @@ object IntExternalizer : DataExternalizer { } } +object PathStringDescriptor : EnumeratorStringDescriptor() { + override fun getHashCode(value: String) = FileUtil.pathHashCode(value) + + override fun isEqual(val1: String, val2: String?) = FileUtil.pathsEqual(val1, val2) +} + object FileKeyDescriptor : KeyDescriptor { override fun read(input: DataInput): File = File(input.readUTF())