FIR IDE: invalidate analysis session on project roots change

This commit is contained in:
Ilya Kirillov
2020-11-13 19:58:05 +03:00
parent be95d067f3
commit b31def0bae
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.idea.frontend.api.fir
import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.ProjectRootModificationTracker
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager
import com.intellij.psi.util.PsiModificationTracker
@@ -21,12 +22,13 @@ import org.jetbrains.kotlin.psi.KtElement
import java.util.concurrent.ConcurrentHashMap
@OptIn(InvalidWayOfUsingAnalysisSession::class)
internal class KtFirAnalysisSessionProvider(project: Project) : KtAnalysisSessionProvider() {
class KtFirAnalysisSessionProvider(project: Project) : KtAnalysisSessionProvider() {
private val analysisSessionByModuleInfoCache =
CachedValuesManager.getManager(project).createCachedValue {
CachedValueProvider.Result(
ConcurrentHashMap<ModuleInfo, KtAnalysisSession>(),
PsiModificationTracker.MODIFICATION_COUNT
PsiModificationTracker.MODIFICATION_COUNT,
ProjectRootModificationTracker.getInstance(project)
)
}