diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/AbstractScriptConfigurationManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/AbstractScriptConfigurationManager.kt index e5864ca2c87..c20736fced0 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/AbstractScriptConfigurationManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/AbstractScriptConfigurationManager.kt @@ -254,12 +254,18 @@ internal abstract class AbstractScriptConfigurationManager( val value2 = _classpathRoots if (value2 != null) return value2 - val value3 = ScriptClassRootsCache(project, cache) + val value3 = newClassRootsCache() _classpathRoots = value3 return value3 } } + private fun newClassRootsCache() = object : ScriptClassRootsCache(project) { + override val all get() = cache.allApplied() + override fun getConfiguration(file: VirtualFile) = + this@AbstractScriptConfigurationManager.getConfiguration(file) + } + private fun clearClassRootsCaches() { debug { "class roots caches cleared" } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/ScriptClassRootsCache.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/ScriptClassRootsCache.kt index 82dc8d28ec1..1177ab4e028 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/ScriptClassRootsCache.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/ScriptClassRootsCache.kt @@ -17,16 +17,12 @@ import com.intellij.psi.search.NonClasspathDirectoriesScope import com.intellij.util.containers.ConcurrentFactoryMap import org.jetbrains.kotlin.idea.caches.project.getAllProjectSdks import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager -import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationCache import org.jetbrains.kotlin.idea.core.script.debug import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper -internal class ScriptClassRootsCache( - private val project: Project, - private val cache: ScriptConfigurationCache -) { - private val all: Collection> get() = cache.allApplied() - private fun getConfiguration(file: VirtualFile): ScriptCompilationConfigurationWrapper? = cache[file]?.applied?.configuration +internal abstract class ScriptClassRootsCache(private val project: Project) { + protected abstract val all: Collection> + protected abstract fun getConfiguration(file: VirtualFile): ScriptCompilationConfigurationWrapper? private fun getScriptSdk(compilationConfiguration: ScriptCompilationConfigurationWrapper?): Sdk? { // workaround for mismatched gradle wrapper and plugin version