From 60200f2a657b3086213e0dcde43c8e34690ae51e Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Fri, 13 Nov 2015 20:14:05 +0300 Subject: [PATCH] Fix tracking lookups when compile using daemon Original commit: 6305bbda5d3c111453d4c434b6a4ef8d9f7df489 --- .../kotlin/jps/incremental/LookupStorage.kt | 11 +++++++---- .../kotlin/jps/build/AbstractLookupTrackerTest.kt | 12 +++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/LookupStorage.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/LookupStorage.kt index cf32e331995..32903e254f2 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/LookupStorage.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/LookupStorage.kt @@ -19,8 +19,8 @@ package org.jetbrains.kotlin.jps.incremental import com.intellij.util.containers.MultiMap import org.jetbrains.annotations.TestOnly import org.jetbrains.jps.builders.storage.StorageProvider -import org.jetbrains.kotlin.incremental.components.LocationInfo import org.jetbrains.kotlin.incremental.components.LookupTracker +import org.jetbrains.kotlin.incremental.components.Position import org.jetbrains.kotlin.incremental.components.ScopeKind import org.jetbrains.kotlin.jps.incremental.storage.* import org.jetbrains.kotlin.utils.Printer @@ -184,9 +184,12 @@ class LookupStorage(private val targetDataDir: File) : BasicMapsOwner() { class LookupTrackerImpl(private val delegate: LookupTracker) : LookupTracker { val lookups = MultiMap() - override fun record(locationInfo: LocationInfo, scopeFqName: String, scopeKind: ScopeKind, name: String) { - lookups.putValue(LookupSymbol(name, scopeFqName), locationInfo.filePath) - delegate.record(locationInfo, scopeFqName, scopeKind, name) + override val requiresPosition: Boolean + get() = delegate.requiresPosition + + override fun record(filePath: String, position: Position, scopeFqName: String, scopeKind: ScopeKind, name: String) { + lookups.putValue(LookupSymbol(name, scopeFqName), filePath) + delegate.record(filePath, position, scopeFqName, scopeKind, name) } } 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 3bac0319008..597c04cf891 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,11 +17,10 @@ package org.jetbrains.kotlin.jps.build import com.intellij.openapi.util.io.FileUtil -import org.jetbrains.kotlin.incremental.components.LocationInfo import org.jetbrains.kotlin.incremental.components.LookupTracker +import org.jetbrains.kotlin.incremental.components.Position import org.jetbrains.kotlin.incremental.components.ScopeKind import org.jetbrains.kotlin.test.KotlinTestUtils -import org.jetbrains.kotlin.utils.join import java.io.File import java.util.* @@ -120,9 +119,12 @@ abstract class AbstractLookupTrackerTest : AbstractIncrementalJpsTest( class TestLookupTracker : LookupTracker { val lookups = arrayListOf() - override fun record(locationInfo: LocationInfo, scopeFqName: String, scopeKind: ScopeKind, name: String) { - val (line, column) = locationInfo.position - lookups.add(LookupInfo(locationInfo.filePath, line, column, scopeFqName, scopeKind, name)) + override val requiresPosition: Boolean + get() = true + + override fun record(filePath: String, position: Position, scopeFqName: String, scopeKind: ScopeKind, name: String) { + val (line, column) = position + lookups.add(LookupInfo(filePath, line, column, scopeFqName, scopeKind, name)) } data class LookupInfo(