Extract LookupTracker service from IncrementalCompilationComponents
We don't need a `TargetId` to `IncrementalCache` mapping in JS
This commit is contained in:
+1
-5
@@ -16,17 +16,13 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.incremental
|
package org.jetbrains.kotlin.incremental
|
||||||
|
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
|
||||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
|
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
|
||||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
||||||
import org.jetbrains.kotlin.modules.TargetId
|
import org.jetbrains.kotlin.modules.TargetId
|
||||||
|
|
||||||
class IncrementalCompilationComponentsImpl(
|
class IncrementalCompilationComponentsImpl(
|
||||||
private val caches: Map<TargetId, IncrementalCache>,
|
private val caches: Map<TargetId, IncrementalCache>
|
||||||
private val lookupTracker: LookupTracker
|
|
||||||
): IncrementalCompilationComponents {
|
): IncrementalCompilationComponents {
|
||||||
override fun getIncrementalCache(target: TargetId): IncrementalCache =
|
override fun getIncrementalCache(target: TargetId): IncrementalCache =
|
||||||
caches[target] ?: throw Exception("Incremental cache for target ${target.name} not found")
|
caches[target] ?: throw Exception("Incremental cache for target ${target.name} not found")
|
||||||
|
|
||||||
override fun getLookupTracker(): LookupTracker = lookupTracker
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,8 +70,8 @@ fun makeCompileServices(
|
|||||||
compilationCanceledStatus: CompilationCanceledStatus?
|
compilationCanceledStatus: CompilationCanceledStatus?
|
||||||
): Services =
|
): Services =
|
||||||
with(Services.Builder()) {
|
with(Services.Builder()) {
|
||||||
register(IncrementalCompilationComponents::class.java,
|
register(LookupTracker::class.java, lookupTracker)
|
||||||
IncrementalCompilationComponentsImpl(incrementalCaches, lookupTracker))
|
register(IncrementalCompilationComponents::class.java, IncrementalCompilationComponentsImpl(incrementalCaches))
|
||||||
compilationCanceledStatus?.let {
|
compilationCanceledStatus?.let {
|
||||||
register(CompilationCanceledStatus::class.java, it)
|
register(CompilationCanceledStatus::class.java, it)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.compiler.plugin.CliOptionProcessingException
|
|||||||
import org.jetbrains.kotlin.compiler.plugin.PluginCliOptionProcessingException
|
import org.jetbrains.kotlin.compiler.plugin.PluginCliOptionProcessingException
|
||||||
import org.jetbrains.kotlin.compiler.plugin.cliPluginUsageString
|
import org.jetbrains.kotlin.compiler.plugin.cliPluginUsageString
|
||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.*
|
||||||
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.javac.JavacWrapper
|
import org.jetbrains.kotlin.javac.JavacWrapper
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
||||||
@@ -288,9 +289,12 @@ class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
|
|||||||
configuration: CompilerConfiguration, arguments: K2JVMCompilerArguments, services: Services
|
configuration: CompilerConfiguration, arguments: K2JVMCompilerArguments, services: Services
|
||||||
) {
|
) {
|
||||||
if (IncrementalCompilation.isEnabled()) {
|
if (IncrementalCompilation.isEnabled()) {
|
||||||
val components = services.get(IncrementalCompilationComponents::class.java)
|
services.get(LookupTracker::class.java)?.let {
|
||||||
if (components != null) {
|
configuration.put(CommonConfigurationKeys.LOOKUP_TRACKER, it)
|
||||||
configuration.put(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS, components)
|
}
|
||||||
|
|
||||||
|
services.get(IncrementalCompilationComponents::class.java)?.let {
|
||||||
|
configuration.put(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS, it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -131,7 +131,7 @@ object TopDownAnalyzerFacadeForJVM {
|
|||||||
val module = moduleContext.module
|
val module = moduleContext.module
|
||||||
|
|
||||||
val incrementalComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS)
|
val incrementalComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS)
|
||||||
val lookupTracker = incrementalComponents?.getLookupTracker() ?: LookupTracker.DO_NOTHING
|
val lookupTracker = configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING
|
||||||
val targetIds = configuration.get(JVMConfigurationKeys.MODULES)?.map(::TargetId)
|
val targetIds = configuration.get(JVMConfigurationKeys.MODULES)?.map(::TargetId)
|
||||||
|
|
||||||
val separateModules = !configuration.getBoolean(JVMConfigurationKeys.USE_SINGLE_MODULE)
|
val separateModules = !configuration.getBoolean(JVMConfigurationKeys.USE_SINGLE_MODULE)
|
||||||
|
|||||||
+4
-3
@@ -33,6 +33,7 @@ import kotlin.reflect.full.allSuperclasses
|
|||||||
|
|
||||||
open class CompilerCallbackServicesFacadeServer(
|
open class CompilerCallbackServicesFacadeServer(
|
||||||
val incrementalCompilationComponents: IncrementalCompilationComponents? = null,
|
val incrementalCompilationComponents: IncrementalCompilationComponents? = null,
|
||||||
|
val lookupTracker: LookupTracker? = null,
|
||||||
val compilationCanceledStatus: CompilationCanceledStatus? = null,
|
val compilationCanceledStatus: CompilationCanceledStatus? = null,
|
||||||
port: Int = SOCKET_ANY_FREE_PORT
|
port: Int = SOCKET_ANY_FREE_PORT
|
||||||
) : CompilerCallbackServicesFacade,
|
) : CompilerCallbackServicesFacade,
|
||||||
@@ -66,17 +67,17 @@ open class CompilerCallbackServicesFacadeServer(
|
|||||||
incrementalCompilationComponents!!.getIncrementalCache(target).close()
|
incrementalCompilationComponents!!.getIncrementalCache(target).close()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun lookupTracker_requiresPosition() = incrementalCompilationComponents!!.getLookupTracker().requiresPosition
|
override fun lookupTracker_requiresPosition() = lookupTracker!!.requiresPosition
|
||||||
|
|
||||||
override fun lookupTracker_record(lookups: Collection<LookupInfo>) {
|
override fun lookupTracker_record(lookups: Collection<LookupInfo>) {
|
||||||
val lookupTracker = incrementalCompilationComponents!!.getLookupTracker()
|
val lookupTracker = lookupTracker!!
|
||||||
|
|
||||||
for (it in lookups) {
|
for (it in lookups) {
|
||||||
lookupTracker.record(it.filePath, it.position, it.scopeFqName, it.scopeKind, it.name)
|
lookupTracker.record(it.filePath, it.position, it.scopeFqName, it.scopeKind, it.name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val lookupTracker_isDoNothing: Boolean = incrementalCompilationComponents?.getLookupTracker() === LookupTracker.DO_NOTHING
|
private val lookupTracker_isDoNothing: Boolean = lookupTracker === LookupTracker.DO_NOTHING
|
||||||
|
|
||||||
override fun lookupTracker_isDoNothing(): Boolean = lookupTracker_isDoNothing
|
override fun lookupTracker_isDoNothing(): Boolean = lookupTracker_isDoNothing
|
||||||
|
|
||||||
|
|||||||
+3
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.daemon.client
|
|||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.daemon.common.*
|
import org.jetbrains.kotlin.daemon.common.*
|
||||||
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
||||||
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
|
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -35,6 +36,7 @@ import kotlin.concurrent.thread
|
|||||||
|
|
||||||
class CompilationServices(
|
class CompilationServices(
|
||||||
val incrementalCompilationComponents: IncrementalCompilationComponents? = null,
|
val incrementalCompilationComponents: IncrementalCompilationComponents? = null,
|
||||||
|
val lookupTracker: LookupTracker? = null,
|
||||||
val compilationCanceledStatus: CompilationCanceledStatus? = null
|
val compilationCanceledStatus: CompilationCanceledStatus? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -170,6 +172,7 @@ object KotlinCompilerClient {
|
|||||||
targetPlatform,
|
targetPlatform,
|
||||||
args,
|
args,
|
||||||
CompilerCallbackServicesFacadeServer(incrementalCompilationComponents = callbackServices.incrementalCompilationComponents,
|
CompilerCallbackServicesFacadeServer(incrementalCompilationComponents = callbackServices.incrementalCompilationComponents,
|
||||||
|
lookupTracker = callbackServices.lookupTracker,
|
||||||
compilationCanceledStatus = callbackServices.compilationCanceledStatus,
|
compilationCanceledStatus = callbackServices.compilationCanceledStatus,
|
||||||
port = port),
|
port = port),
|
||||||
RemoteOutputStreamServer(compilerOut, port),
|
RemoteOutputStreamServer(compilerOut, port),
|
||||||
|
|||||||
-6
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.daemon
|
package org.jetbrains.kotlin.daemon
|
||||||
|
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
|
||||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
|
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
|
||||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
||||||
import org.jetbrains.kotlin.modules.TargetId
|
import org.jetbrains.kotlin.modules.TargetId
|
||||||
@@ -24,11 +23,6 @@ import org.jetbrains.kotlin.daemon.common.CompilerCallbackServicesFacade
|
|||||||
import org.jetbrains.kotlin.daemon.common.DummyProfiler
|
import org.jetbrains.kotlin.daemon.common.DummyProfiler
|
||||||
import org.jetbrains.kotlin.daemon.common.Profiler
|
import org.jetbrains.kotlin.daemon.common.Profiler
|
||||||
|
|
||||||
|
|
||||||
class RemoteIncrementalCompilationComponentsClient(val facade: CompilerCallbackServicesFacade, eventManager: EventManager, val profiler: Profiler = DummyProfiler()) : IncrementalCompilationComponents {
|
class RemoteIncrementalCompilationComponentsClient(val facade: CompilerCallbackServicesFacade, eventManager: EventManager, val profiler: Profiler = DummyProfiler()) : IncrementalCompilationComponents {
|
||||||
val remoteLookupTrackerClient = RemoteLookupTrackerClient(facade, eventManager, profiler)
|
|
||||||
|
|
||||||
override fun getIncrementalCache(target: TargetId): IncrementalCache = RemoteIncrementalCacheClient(facade, target, profiler)
|
override fun getIncrementalCache(target: TargetId): IncrementalCache = RemoteIncrementalCacheClient(facade, target, profiler)
|
||||||
|
|
||||||
override fun getLookupTracker(): LookupTracker = remoteLookupTrackerClient
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.config
|
package org.jetbrains.kotlin.config
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
|
|
||||||
object CommonConfigurationKeys {
|
object CommonConfigurationKeys {
|
||||||
@JvmField
|
@JvmField
|
||||||
val LANGUAGE_VERSION_SETTINGS = CompilerConfigurationKey<LanguageVersionSettings>("language version settings")
|
val LANGUAGE_VERSION_SETTINGS = CompilerConfigurationKey<LanguageVersionSettings>("language version settings")
|
||||||
@@ -28,6 +30,9 @@ object CommonConfigurationKeys {
|
|||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
val REPORT_OUTPUT_FILES = CompilerConfigurationKey<Boolean>("report output files")
|
val REPORT_OUTPUT_FILES = CompilerConfigurationKey<Boolean>("report output files")
|
||||||
|
|
||||||
|
@JvmField
|
||||||
|
val LOOKUP_TRACKER = CompilerConfigurationKey.create<LookupTracker>("lookup tracker")
|
||||||
}
|
}
|
||||||
|
|
||||||
var CompilerConfiguration.languageVersionSettings: LanguageVersionSettings
|
var CompilerConfiguration.languageVersionSettings: LanguageVersionSettings
|
||||||
|
|||||||
-2
@@ -16,10 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.load.kotlin.incremental.components
|
package org.jetbrains.kotlin.load.kotlin.incremental.components
|
||||||
|
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
|
||||||
import org.jetbrains.kotlin.modules.TargetId
|
import org.jetbrains.kotlin.modules.TargetId
|
||||||
|
|
||||||
interface IncrementalCompilationComponents {
|
interface IncrementalCompilationComponents {
|
||||||
fun getIncrementalCache(target: TargetId): IncrementalCache
|
fun getIncrementalCache(target: TargetId): IncrementalCache
|
||||||
fun getLookupTracker(): LookupTracker
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.daemon.client.CompilerCallbackServicesFacadeServer
|
|||||||
import org.jetbrains.kotlin.daemon.client.reportFromDaemon
|
import org.jetbrains.kotlin.daemon.client.reportFromDaemon
|
||||||
import org.jetbrains.kotlin.daemon.common.JpsCompilerServicesFacade
|
import org.jetbrains.kotlin.daemon.common.JpsCompilerServicesFacade
|
||||||
import org.jetbrains.kotlin.daemon.common.SOCKET_ANY_FREE_PORT
|
import org.jetbrains.kotlin.daemon.common.SOCKET_ANY_FREE_PORT
|
||||||
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
||||||
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
|
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
@@ -28,6 +29,7 @@ internal class JpsCompilerServicesFacadeImpl(
|
|||||||
private val env: JpsCompilerEnvironment,
|
private val env: JpsCompilerEnvironment,
|
||||||
port: Int = SOCKET_ANY_FREE_PORT
|
port: Int = SOCKET_ANY_FREE_PORT
|
||||||
) : CompilerCallbackServicesFacadeServer(env.services.get(IncrementalCompilationComponents::class.java),
|
) : CompilerCallbackServicesFacadeServer(env.services.get(IncrementalCompilationComponents::class.java),
|
||||||
|
env.services.get(LookupTracker::class.java),
|
||||||
env.services.get(CompilationCanceledStatus::class.java),
|
env.services.get(CompilationCanceledStatus::class.java),
|
||||||
port),
|
port),
|
||||||
JpsCompilerServicesFacade {
|
JpsCompilerServicesFacade {
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.io.FileUtil
|
|||||||
import com.intellij.util.containers.ContainerUtil
|
import com.intellij.util.containers.ContainerUtil
|
||||||
import com.intellij.util.containers.MultiMap
|
import com.intellij.util.containers.MultiMap
|
||||||
import gnu.trove.THashSet
|
import gnu.trove.THashSet
|
||||||
|
import jdk.nashorn.internal.lookup.Lookup
|
||||||
import org.jetbrains.jps.ModuleChunk
|
import org.jetbrains.jps.ModuleChunk
|
||||||
import org.jetbrains.jps.builders.BuildTarget
|
import org.jetbrains.jps.builders.BuildTarget
|
||||||
import org.jetbrains.jps.builders.DirtyFilesHolder
|
import org.jetbrains.jps.builders.DirtyFilesHolder
|
||||||
@@ -459,9 +460,9 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) {
|
|||||||
messageCollector: MessageCollectorAdapter
|
messageCollector: MessageCollectorAdapter
|
||||||
): JpsCompilerEnvironment? {
|
): JpsCompilerEnvironment? {
|
||||||
val compilerServices = with(Services.Builder()) {
|
val compilerServices = with(Services.Builder()) {
|
||||||
|
register(LookupTracker::class.java, lookupTracker)
|
||||||
register(IncrementalCompilationComponents::class.java,
|
register(IncrementalCompilationComponents::class.java,
|
||||||
IncrementalCompilationComponentsImpl(incrementalCaches.mapKeys { TargetId(it.key) },
|
IncrementalCompilationComponentsImpl(incrementalCaches.mapKeys { TargetId(it.key) }))
|
||||||
lookupTracker))
|
|
||||||
register(CompilationCanceledStatus::class.java, object : CompilationCanceledStatus {
|
register(CompilationCanceledStatus::class.java, object : CompilationCanceledStatus {
|
||||||
override fun checkCanceled() {
|
override fun checkCanceled() {
|
||||||
if (context.cancelStatus.isCanceled) throw CompilationCanceledException()
|
if (context.cancelStatus.isCanceled) throw CompilationCanceledException()
|
||||||
|
|||||||
Reference in New Issue
Block a user