diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinIdeResolutionAnchorService.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinIdeResolutionAnchorService.kt index 6df36e36e52..16d08170d4f 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinIdeResolutionAnchorService.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinIdeResolutionAnchorService.kt @@ -24,16 +24,17 @@ import org.jetbrains.kotlin.resolve.ResolutionAnchorProvider @State(name = "KotlinIdeAnchorService", storages = [Storage("anchors.xml")]) class KotlinIdeResolutionAnchorService( val project: Project -) : ResolutionAnchorProvider, +) : ResolutionAnchorProvider, PersistentStateComponent { data class State( var moduleNameToAnchorName: Map = emptyMap() ) - + private val logger = logger() @JvmField + @Volatile var myState: State = State() private fun buildMapping(): Map { @@ -52,7 +53,7 @@ class KotlinIdeResolutionAnchorService( module to anchor }.toMap() } - + private fun notFoundModule(moduleName: String): Nothing? { logger.warn("Module <${moduleName}> not found in project model") return null @@ -63,15 +64,12 @@ class KotlinIdeResolutionAnchorService( buildMapping() } - @Synchronized override fun getState(): State = myState - @Synchronized override fun loadState(state: State) { XmlSerializerUtil.copyBean(state, myState) } - @Synchronized override fun getResolutionAnchor(moduleDescriptor: ModuleDescriptor): ModuleDescriptor? { if (!project.libraryToSourceAnalysisEnabled) return null val moduleInfo = moduleDescriptor.moduleInfo ?: return null