Add appropriate script extension to the source name, if not provided

#KT-31704 fixed
This commit is contained in:
Ilya Chernikov
2019-09-05 17:30:17 +02:00
parent 92778cc5b5
commit 45f5c42a53
4 changed files with 50 additions and 11 deletions
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.psi.KtScript
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.scripting.compiler.plugin.dependencies.ScriptsCompilationDependencies
import org.jetbrains.kotlin.scripting.resolve.ScriptLightVirtualFile
import org.jetbrains.kotlin.scripting.scriptFileName
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
import java.util.*
import kotlin.script.experimental.api.*
@@ -32,16 +33,6 @@ internal fun makeCompiledModule(generationState: GenerationState) =
.associateTo(sortedMapOf<String, ByteArray>()) { it.relativePath to it.asByteArray() }
)
internal fun SourceCode.scriptFileName(
mainScript: SourceCode,
scriptCompilationConfiguration: ScriptCompilationConfiguration
): String =
when {
name != null -> name!!
mainScript == this -> "script.${scriptCompilationConfiguration[ScriptCompilationConfiguration.fileExtension]}"
else -> throw Exception("Unexpected script without name: $this")
}
internal inline fun <T> withMessageCollectorAndDisposable(
script: SourceCode? = null,
parentMessageCollector: MessageCollector? = null,