diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JvmContentRoots.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JvmContentRoots.kt index 4ead353dc32..15d35f26583 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JvmContentRoots.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JvmContentRoots.kt @@ -26,7 +26,9 @@ interface JvmContentRoot : ContentRoot { val file: File } -data class JvmClasspathRoot(override val file: File) : JvmContentRoot +data class JvmClasspathRoot(override val file: File, val isSdkRoot: Boolean) : JvmContentRoot { + constructor(file: File) : this(file, false) +} data class JavaSourceRoot(override val file: File, val packagePrefix: String?) : JvmContentRoot @@ -41,7 +43,7 @@ fun CompilerConfiguration.addJvmClasspathRoots(files: List) { } fun CompilerConfiguration.addJvmSdkRoots(files: List) { - addAll(CLIConfigurationKeys.CONTENT_ROOTS, 0, files.map(::JvmClasspathRoot)) + addAll(CLIConfigurationKeys.CONTENT_ROOTS, 0, files.map { file -> JvmClasspathRoot(file, true) }) } val CompilerConfiguration.jvmClasspathRoots: List diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/ScriptJvmCompilerImpls.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/ScriptJvmCompilerImpls.kt index 9b58d7490c8..3df8268b590 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/ScriptJvmCompilerImpls.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/ScriptJvmCompilerImpls.kt @@ -11,6 +11,8 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM +import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot +import org.jetbrains.kotlin.cli.jvm.config.JvmContentRoot import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots import org.jetbrains.kotlin.codegen.ClassBuilderFactories import org.jetbrains.kotlin.codegen.KotlinCodegenFacade @@ -126,7 +128,8 @@ private fun compileImpl( // performed with the expected classpath // TODO: make this logic obsolete by injecting classpath earlier in the pipeline val depsFromConfiguration = get(dependencies)?.flatMapTo(HashSet()) { (it as? JvmDependency)?.classpath ?: emptyList() } - val depsFromCompiler = context.environment.configuration.jvmClasspathRoots + val depsFromCompiler = context.environment.configuration.getList(CLIConfigurationKeys.CONTENT_ROOTS) + .mapNotNull { if (it is JvmClasspathRoot && !it.isSdkRoot) it.file else null } if (!depsFromConfiguration.isNullOrEmpty()) { val missingDeps = depsFromCompiler.filter { !depsFromConfiguration.contains(it) } if (missingDeps.isNotEmpty()) {