From 559b067f91389704eb31ce82363df1a1c4007d5f Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Wed, 4 Dec 2019 15:03:40 +0300 Subject: [PATCH] gradle.kts: move areSimilar to utils.kt to use in tests --- .../DefaultScriptConfigurationManager.kt | 25 +--------------- .../core/script/configuration/utils/utils.kt | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt index a6ba54ad9c9..256eb4831e7 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/DefaultScriptConfigurationManager.kt @@ -26,10 +26,8 @@ import org.jetbrains.kotlin.idea.core.script.configuration.loader.DefaultScriptC import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptConfigurationLoader import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptConfigurationLoadingContext import org.jetbrains.kotlin.idea.core.script.configuration.loader.ScriptOutsiderFileConfigurationLoader -import org.jetbrains.kotlin.idea.core.script.configuration.utils.BackgroundExecutor +import org.jetbrains.kotlin.idea.core.script.configuration.utils.* import org.jetbrains.kotlin.idea.core.script.configuration.utils.DefaultBackgroundExecutor -import org.jetbrains.kotlin.idea.core.script.configuration.utils.TestingBackgroundExecutor -import org.jetbrains.kotlin.idea.core.script.configuration.utils.isUnitTestModeWithoutScriptLoadingNotification import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings import org.jetbrains.kotlin.idea.core.util.EDT import org.jetbrains.kotlin.psi.KtFile @@ -310,27 +308,6 @@ internal class DefaultScriptConfigurationManager(project: Project) : } } } - - private fun areSimilar(old: ScriptCompilationConfigurationWrapper, new: ScriptCompilationConfigurationWrapper): Boolean { - if (old.script != new.script) return false - - val oldConfig = old.configuration - val newConfig = new.configuration - - if (oldConfig == newConfig) return true - if (oldConfig == null || newConfig == null) return false - - if (oldConfig[ScriptCompilationConfiguration.jvm.jdkHome] != newConfig[ScriptCompilationConfiguration.jvm.jdkHome]) return false - - // there is differences how script definition classpath is added to script classpath in old and new scripting API, - // so it's important to compare the resulting classpath list, not only the value of key - if (oldConfig[ScriptCompilationConfiguration.dependencies].toClassPathOrEmpty() != newConfig[ScriptCompilationConfiguration.dependencies].toClassPathOrEmpty()) return false - - if (oldConfig[ScriptCompilationConfiguration.ide.dependenciesSources] != newConfig[ScriptCompilationConfiguration.ide.dependenciesSources]) return false - if (oldConfig[ScriptCompilationConfiguration.defaultImports] != newConfig[ScriptCompilationConfiguration.defaultImports]) return false - - return true - } } object DefaultScriptConfigurationManagerExtensions { diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/utils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/utils.kt index 55e608fb881..17343e497f8 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/utils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/utils/utils.kt @@ -10,6 +10,11 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiManager import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper +import kotlin.script.experimental.api.* +import kotlin.script.experimental.jvm.impl.toClassPathOrEmpty +import kotlin.script.experimental.jvm.jdkHome +import kotlin.script.experimental.jvm.jvm fun Project.getKtFile( virtualFile: VirtualFile?, @@ -22,4 +27,28 @@ fun Project.getKtFile( } else { return runReadAction { PsiManager.getInstance(this).findFile(virtualFile) as? KtFile } } +} + +/** + * For using in DefaultScriptConfigurationManager and in tests only + */ +fun areSimilar(old: ScriptCompilationConfigurationWrapper, new: ScriptCompilationConfigurationWrapper): Boolean { + if (old.script != new.script) return false + + val oldConfig = old.configuration + val newConfig = new.configuration + + if (oldConfig == newConfig) return true + if (oldConfig == null || newConfig == null) return false + + if (oldConfig[ScriptCompilationConfiguration.jvm.jdkHome] != newConfig[ScriptCompilationConfiguration.jvm.jdkHome]) return false + + // there is differences how script definition classpath is added to script classpath in old and new scripting API, + // so it's important to compare the resulting classpath list, not only the value of key + if (oldConfig[ScriptCompilationConfiguration.dependencies].toClassPathOrEmpty() != newConfig[ScriptCompilationConfiguration.dependencies].toClassPathOrEmpty()) return false + + if (oldConfig[ScriptCompilationConfiguration.ide.dependenciesSources] != newConfig[ScriptCompilationConfiguration.ide.dependenciesSources]) return false + if (oldConfig[ScriptCompilationConfiguration.defaultImports] != newConfig[ScriptCompilationConfiguration.defaultImports]) return false + + return true } \ No newline at end of file