From 48c63990259aa64b33cda599f5fc401beb58d596 Mon Sep 17 00:00:00 2001 From: Vlad Koshkin Date: Fri, 21 Feb 2025 14:01:05 +0100 Subject: [PATCH] [kotlin] K1: use dependenciesFromCurrentContext when loading ScriptDefinitionForExtensionAndIdeConsoleRoots #KTIJ-32309 Fixed KT-MR-20314 GitOrigin-RevId: 6a7abcd150151dd0b5e79d2030bf3accf1f39503 --- .../ScriptDefinitionForExtensionAndIdeConsoleRoots.kt | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/plugins/kotlin/repl/src/org/jetbrains/kotlin/jsr223/ScriptDefinitionForExtensionAndIdeConsoleRoots.kt b/plugins/kotlin/repl/src/org/jetbrains/kotlin/jsr223/ScriptDefinitionForExtensionAndIdeConsoleRoots.kt index da4648c2fca4..fb2f3f49ace0 100644 --- a/plugins/kotlin/repl/src/org/jetbrains/kotlin/jsr223/ScriptDefinitionForExtensionAndIdeConsoleRoots.kt +++ b/plugins/kotlin/repl/src/org/jetbrains/kotlin/jsr223/ScriptDefinitionForExtensionAndIdeConsoleRoots.kt @@ -5,14 +5,12 @@ package org.jetbrains.kotlin.jsr223 import com.intellij.ide.extensionResources.ExtensionsRootType import com.intellij.ide.scratch.RootType import com.intellij.ide.script.IdeConsoleRootType -import com.intellij.openapi.application.PathManager import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource import org.jetbrains.kotlin.scripting.resolve.VirtualFileScriptSource -import kotlin.io.path.nameWithoutExtension import kotlin.script.experimental.api.* import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration -import kotlin.script.experimental.jvm.dependenciesFromClassContext +import kotlin.script.experimental.jvm.dependenciesFromCurrentContext import kotlin.script.experimental.jvm.jvm import kotlin.script.templates.standard.ScriptTemplateWithBindings @@ -42,15 +40,10 @@ private object ScriptCompilationConfigurationForExtensionAndIdeConsoleRoots : Sc baseClass(KotlinType(ScriptTemplateWithBindings::class)) displayName(SCRIPT_DEFINITION_NAME) jvm { - val kotlincLibraryName = - PathManager.getJarForClass(KotlinVersion::class.java)?.nameWithoutExtension - ?: error("unable to locate Kotlin standard library") // This approach works, but could be quite expensive, since it forces indexing of the whole IDEA classpath // more economical approach would be to list names (without versions and .jar extension) of all jars // required for the scripts after the kotlin stdlib/script-runtime, and set wholeClasspath to false - dependenciesFromClassContext( - ScriptCompilationConfigurationForExtensionAndIdeConsoleRoots::class, - kotlincLibraryName, + dependenciesFromCurrentContext( wholeClasspath = true ) // todo commented out until we figure out why it is needed and how to implement it safely