Get rid of kotlinx-coroutines usage in scripting libs and plugins
the dependency on the coroutines library caused various problems like KT-30778, or stdlib/runtime version conflicts. The only function used was `runBlocking`, so this change replaces it with the internal implementation based on the similar internal thing from the stdlib. #KT-30778 fixed
This commit is contained in:
committed by
TeamCityServer
parent
9b1de90452
commit
0cd29adcc7
@@ -38,8 +38,7 @@ dependencies {
|
||||
embedded(project(":kotlin-scripting-jvm-host-unshaded")) { isTransitive = false }
|
||||
embedded(project(":kotlin-scripting-dependencies")) { isTransitive = false }
|
||||
embedded("org.apache.ivy:ivy:2.5.0")
|
||||
embedded(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false }
|
||||
embedded(commonDep("org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm")) {
|
||||
embedded(commonDep("org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm")) {
|
||||
isTransitive = false
|
||||
attributes {
|
||||
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.mainKts
|
||||
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.jetbrains.kotlin.mainKts.impl.Directories
|
||||
import org.jetbrains.kotlin.mainKts.impl.IvyResolver
|
||||
import java.io.File
|
||||
@@ -19,6 +18,7 @@ import kotlin.script.experimental.dependencies.*
|
||||
import kotlin.script.experimental.host.FileBasedScriptSource
|
||||
import kotlin.script.experimental.host.FileScriptSource
|
||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||
import kotlin.script.experimental.impl.internalScriptingRunSuspend
|
||||
import kotlin.script.experimental.jvm.*
|
||||
import kotlin.script.experimental.jvm.compat.mapLegacyDiagnosticSeverity
|
||||
import kotlin.script.experimental.jvm.compat.mapLegacyScriptPosition
|
||||
@@ -135,7 +135,8 @@ class MainKtsConfigurator : RefineScriptCompilationConfigurationHandler {
|
||||
}
|
||||
|
||||
val resolveResult = try {
|
||||
runBlocking {
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
internalScriptingRunSuspend {
|
||||
resolver.resolveFromScriptSourceAnnotations(annotations.filter { it.annotation is DependsOn || it.annotation is Repository })
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
|
||||
+3
-2
@@ -17,7 +17,6 @@
|
||||
package org.jetbrains.kotlin.script.util
|
||||
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot
|
||||
import org.jetbrains.kotlin.cli.common.messages.*
|
||||
@@ -55,6 +54,7 @@ import kotlin.reflect.KClass
|
||||
import kotlin.script.experimental.api.onSuccess
|
||||
import kotlin.script.experimental.api.valueOr
|
||||
import kotlin.script.experimental.host.toScriptSource
|
||||
import kotlin.script.experimental.impl.internalScriptingRunSuspend
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
import kotlin.script.experimental.jvm.util.scriptCompilationClasspathFromContext
|
||||
|
||||
@@ -199,7 +199,8 @@ done
|
||||
val script = File(scriptPath).toScriptSource()
|
||||
val newScriptDefinition = ScriptDefinitionProvider.getInstance(environment.project)!!.findDefinition(script)!!
|
||||
val compiledScript = scriptCompiler.compile(script, newScriptDefinition.compilationConfiguration).onSuccess {
|
||||
runBlocking {
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
internalScriptingRunSuspend {
|
||||
it.getClass(newScriptDefinition.evaluationConfiguration)
|
||||
}
|
||||
}.valueOr {
|
||||
|
||||
Reference in New Issue
Block a user