[scripting] Move earlierScripts to the frontend descriptor

^KT-20488 fixed
This commit is contained in:
Ilya Muradyan
2021-11-13 00:28:06 +03:00
parent 4149b91c0d
commit 6917ff7d2a
15 changed files with 94 additions and 65 deletions
@@ -47,9 +47,7 @@ class JvmReplEvaluator(
val lastSnippetClass = history.peek()?.item?.first
val historyBeforeSnippet = history.previousItems(compileResult.lineId).map { it.second }.toList()
val currentConfiguration = ScriptEvaluationConfiguration(baseScriptEvaluationConfiguration) {
if (historyBeforeSnippet.isNotEmpty()) {
previousSnippets.put(historyBeforeSnippet)
}
previousSnippets.put(historyBeforeSnippet)
if (lastSnippetClass != null) {
jvm {
baseClassLoader(lastSnippetClass.java.classLoader)
@@ -37,9 +37,7 @@ class BasicJvmReplEvaluator(val scriptEvaluator: ScriptEvaluator = BasicJvmScrip
val lastSnippetClass = history.lastItem()?.first
val historyBeforeSnippet = history.items.map { it.second }
val currentConfiguration = ScriptEvaluationConfiguration(configuration) {
if (historyBeforeSnippet.isNotEmpty()) {
previousSnippets.put(historyBeforeSnippet)
}
previousSnippets.put(historyBeforeSnippet)
if (lastSnippetClass != null) {
jvm {
lastSnippetClassLoader(lastSnippetClass.java.classLoader)
@@ -19,12 +19,16 @@ open class BasicJvmScriptEvaluator : ScriptEvaluator {
// configuration shared between all module scripts
val sharedConfiguration = scriptEvaluationConfiguration.getOrPrepareShared(scriptClass.java.classLoader)
val configurationForOtherScripts by lazy {
sharedConfiguration.with {
reset(ScriptEvaluationConfiguration.previousSnippets)
}
}
val sharedScripts = sharedConfiguration[ScriptEvaluationConfiguration.jvm.scriptsInstancesSharingMap]
sharedScripts?.get(scriptClass)?.asSuccess()
?: compiledScript.otherScripts.mapSuccess {
invoke(it, sharedConfiguration)
invoke(it, configurationForOtherScripts)
}.onSuccess { importedScriptsEvalResults ->
val refinedEvalConfiguration =
@@ -70,9 +74,7 @@ open class BasicJvmScriptEvaluator : ScriptEvaluator {
val args = ArrayList<Any?>()
refinedEvalConfiguration[ScriptEvaluationConfiguration.previousSnippets]?.let {
if (it.isNotEmpty()) {
args.add(it.toTypedArray())
}
args.add(it.toTypedArray())
}
refinedEvalConfiguration[ScriptEvaluationConfiguration.constructorArgs]?.let {