Implement support for new script customizations in command line compiler

refactor and fix internals in many places to make it work
add appropriate tests for main-kts case
This commit is contained in:
Ilya Chernikov
2019-07-01 13:41:08 +02:00
parent 1ab255eafb
commit dc4370ff08
23 changed files with 477 additions and 272 deletions
@@ -18,10 +18,10 @@ dependencies {
allTestsRuntime(intellijDep()) { includeJars("openapi", "idea", "idea_rt", "log4j") }
testCompile(project(":kotlin-scripting-jvm-host"))
testCompile(projectTests(":compiler:tests-common"))
testCompile(project(":kotlin-scripting-compiler"))
testCompile(project(":daemon-common")) // TODO: fix import (workaround for jps build)
testRuntimeOnly(project(":kotlin-compiler"))
testRuntimeOnly(project(":kotlin-scripting-compiler"))
testRuntimeOnly(project(":kotlin-reflect"))
testRuntimeOnly(commonDep("org.jetbrains.intellij.deps", "trove4j"))
@@ -9,6 +9,7 @@ import junit.framework.TestCase
import kotlinx.coroutines.runBlocking
import org.jetbrains.kotlin.cli.common.repl.BasicReplStageHistory
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.KJvmReplCompilerImpl
import org.junit.Assert
import org.junit.Test
import kotlin.script.experimental.annotations.KotlinScript
@@ -16,7 +17,6 @@ import kotlin.script.experimental.api.*
import kotlin.script.experimental.host.toScriptSource
import kotlin.script.experimental.jvm.*
import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromTemplate
import kotlin.script.experimental.jvmhost.impl.KJvmReplCompilerImpl
class ReplTest : TestCase() {
@@ -46,7 +46,8 @@ class ReplTest : TestCase() {
evaluationConfiguration: ScriptEvaluationConfiguration,
snippets: Sequence<String>
): Sequence<ResultWithDiagnostics<EvaluationResult>> {
val replCompilerProxy = KJvmReplCompilerImpl(defaultJvmScriptingHostConfiguration)
val replCompilerProxy =
KJvmReplCompilerImpl(defaultJvmScriptingHostConfiguration)
val compilationState = replCompilerProxy.createReplCompilationState(compilationConfiguration)
val compilationHistory = BasicReplStageHistory<ScriptDescriptor>()
val replEvaluator = BasicJvmScriptEvaluator()
@@ -7,6 +7,8 @@ package kotlin.script.experimental.jvmhost.test
import junit.framework.TestCase
import kotlinx.coroutines.runBlocking
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.CompiledScriptClassLoader
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.KJvmCompiledModuleInMemory
import org.jetbrains.org.objectweb.asm.ClassReader
import org.jetbrains.org.objectweb.asm.ClassVisitor
import org.jetbrains.org.objectweb.asm.Opcodes
@@ -27,8 +29,6 @@ import kotlin.script.experimental.jvm.BasicJvmScriptEvaluator
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
import kotlin.script.experimental.jvm.impl.KJvmCompiledScript
import kotlin.script.experimental.jvmhost.*
import kotlin.script.experimental.jvmhost.impl.CompiledScriptClassLoader
import kotlin.script.experimental.jvmhost.impl.KJvmCompiledModuleInMemory
import kotlin.script.templates.standard.SimpleScriptTemplate
class ScriptingHostTest : TestCase() {