FIR IDE: invalidate analysis session on project roots change
This commit is contained in:
+4
-2
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.idea.frontend.api.fir
|
package org.jetbrains.kotlin.idea.frontend.api.fir
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.openapi.roots.ProjectRootModificationTracker
|
||||||
import com.intellij.psi.util.CachedValueProvider
|
import com.intellij.psi.util.CachedValueProvider
|
||||||
import com.intellij.psi.util.CachedValuesManager
|
import com.intellij.psi.util.CachedValuesManager
|
||||||
import com.intellij.psi.util.PsiModificationTracker
|
import com.intellij.psi.util.PsiModificationTracker
|
||||||
@@ -21,12 +22,13 @@ import org.jetbrains.kotlin.psi.KtElement
|
|||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
|
|
||||||
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
||||||
internal class KtFirAnalysisSessionProvider(project: Project) : KtAnalysisSessionProvider() {
|
class KtFirAnalysisSessionProvider(project: Project) : KtAnalysisSessionProvider() {
|
||||||
private val analysisSessionByModuleInfoCache =
|
private val analysisSessionByModuleInfoCache =
|
||||||
CachedValuesManager.getManager(project).createCachedValue {
|
CachedValuesManager.getManager(project).createCachedValue {
|
||||||
CachedValueProvider.Result(
|
CachedValueProvider.Result(
|
||||||
ConcurrentHashMap<ModuleInfo, KtAnalysisSession>(),
|
ConcurrentHashMap<ModuleInfo, KtAnalysisSession>(),
|
||||||
PsiModificationTracker.MODIFICATION_COUNT
|
PsiModificationTracker.MODIFICATION_COUNT,
|
||||||
|
ProjectRootModificationTracker.getInstance(project)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user