diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ResolveElementCache.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ResolveElementCache.kt index 98fa5f5629c..bf3b74fd136 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ResolveElementCache.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ResolveElementCache.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.idea.project import com.intellij.openapi.project.Project +import com.intellij.openapi.roots.ProjectRootModificationTracker import com.intellij.psi.util.CachedValue import com.intellij.psi.util.CachedValueProvider import com.intellij.psi.util.CachedValuesManager @@ -71,7 +72,8 @@ class ResolveElementCache( CachedValueProvider.Result.create( ContainerUtil.createConcurrentWeakKeySoftValueMap(), KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker, - resolveSession.exceptionTracker + resolveSession.exceptionTracker, + rootsChangedTracker ) }, false @@ -110,12 +112,15 @@ class ResolveElementCache( CachedValueProvider.Result.create( slruCache, KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker, - resolveSession.exceptionTracker + resolveSession.exceptionTracker, + rootsChangedTracker ) }, false ) + private val rootsChangedTracker = ProjectRootModificationTracker.getInstance(project) + override fun resolveFunctionBody(function: KtNamedFunction) = getElementsAdditionalResolve(function, null, BodyResolveMode.FULL) fun resolvePrimaryConstructorParametersDefaultValues(ktClass: KtClass): BindingContext {