diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt index 542163392a0..d92d0d119e3 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt @@ -601,10 +601,7 @@ public class IncrementalCacheImpl( override fun dumpValue(value: Boolean) = "" } - private inner class SourceToClassesMap(storageFile: File) : BasicStringMap>(storageFile, StringListExternalizer) { - override val keyDescriptor: KeyDescriptor - get() = PathStringDescriptor.INSTANCE - + private inner class SourceToClassesMap(storageFile: File) : BasicStringMap>(storageFile, PathStringDescriptor.INSTANCE, StringListExternalizer) { public fun clearOutputsForSource(sourceFile: File) { storage.remove(sourceFile.getAbsolutePath()) } @@ -676,10 +673,7 @@ public class IncrementalCacheImpl( * * inlineFunction - jvmSignature of some inline function in source file * * target files - collection of files inlineFunction has been inlined to */ - private inner class InlineFunctionsFilesMap(storageFile: File) : BasicMap>(storageFile, PathCollectionExternalizer) { - override val keyDescriptor: KeyDescriptor - get() = PathFunctionPairKeyDescriptor - + private inner class InlineFunctionsFilesMap(storageFile: File) : BasicMap>(storageFile, PathFunctionPairKeyDescriptor, PathCollectionExternalizer) { public fun add(sourcePath: String, jvmSignature: String, targetPath: String) { val key = PathFunctionPair(sourcePath, jvmSignature) storage.appendData(key) { out -> diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/storage/BasicMap.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/storage/BasicMap.kt index db5e3f503d2..c89fb8bc5ce 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/storage/BasicMap.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/storage/BasicMap.kt @@ -27,10 +27,9 @@ import java.io.IOException public abstract class BasicMap, V>( private val storageFile: File, + private val keyDescriptor: KeyDescriptor, private val valueExternalizer: DataExternalizer ) { - protected abstract val keyDescriptor: KeyDescriptor - protected var storage: PersistentHashMap = createMap() public fun contains(key: K): Boolean = storage.containsMapping(key) @@ -92,10 +91,13 @@ public abstract class BasicMap, V>( public abstract class BasicStringMap( storageFile: File, + keyDescriptor: KeyDescriptor, valueExternalizer: DataExternalizer -) : BasicMap(storageFile, valueExternalizer) { - override val keyDescriptor: KeyDescriptor - get() = EnumeratorStringDescriptor() +) : BasicMap(storageFile, keyDescriptor, valueExternalizer) { + public constructor( + storageFile: File, + valueExternalizer: DataExternalizer + ) : this(storageFile, EnumeratorStringDescriptor.INSTANCE, valueExternalizer) override fun dumpKey(key: String): String = key } \ No newline at end of file