gradle.kts: move areSimilar to utils.kt to use in tests

This commit is contained in:
Sergey Rostov
2019-12-04 15:03:40 +03:00
parent 249f72585d
commit 559b067f91
2 changed files with 30 additions and 24 deletions
@@ -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 {
@@ -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
}