diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 6ab0bf66423..62773565ebb 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -542,7 +542,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { val removedFiles = chunk.targets.flatMap { KotlinSourceFileCollector.getRemovedKotlinFiles(dirtyFilesHolder, it) } removedFiles.forEach { lookupStorage.removeLookupsFrom(it) } - lookupStorage.addAll(lookupTracker.lookups.entrySet()) + lookupStorage.addAll(lookupTracker.lookups.entrySet(), lookupTracker.pathInterner.values) } // if null is returned, nothing was done diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt index 28455f8773a..bf79ec43766 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.jps.build import com.intellij.openapi.util.io.FileUtil +import com.intellij.util.containers.StringInterner import org.jetbrains.kotlin.incremental.components.LookupInfo import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.incremental.components.Position @@ -119,12 +120,17 @@ abstract class AbstractLookupTrackerTest : AbstractIncrementalJpsTest( class TestLookupTracker : LookupTracker { val lookups = arrayListOf() + private val interner = StringInterner() override val requiresPosition: Boolean get() = true override fun record(filePath: String, position: Position, scopeFqName: String, scopeKind: ScopeKind, name: String) { - lookups.add(LookupInfo(filePath, position, scopeFqName, scopeKind, name)) + val internedFilePath = interner.intern(filePath) + val internedScopeFqName = interner.intern(scopeFqName) + val internedName = interner.intern(name) + + lookups.add(LookupInfo(internedFilePath, position, internedScopeFqName, scopeKind, internedName)) } }