Do not call IR backend when there's a script involved

This commit is contained in:
Georgy Bronnikov
2020-01-29 20:20:00 +03:00
parent 03c6f13831
commit 186e0b0cba
@@ -39,8 +39,7 @@ import org.jetbrains.kotlin.cli.common.ExitCode
import org.jetbrains.kotlin.cli.common.checkKotlinPackageUsage
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.OUTPUT
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.WARNING
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil
import org.jetbrains.kotlin.cli.common.output.writeAll
@@ -612,8 +611,17 @@ object KotlinToJVMBytecodeCompiler {
sourceFiles: List<KtFile>,
module: Module?
): GenerationState {
val isIR = configuration.getBoolean(JVMConfigurationKeys.IR) ||
configuration.getBoolean(CommonConfigurationKeys.USE_FIR)
// The IR backend does not handle .kts files yet.
var isIR = (configuration.getBoolean(JVMConfigurationKeys.IR) ||
configuration.getBoolean(CommonConfigurationKeys.USE_FIR))
val anyKts = sourceFiles.any { it.isScript() }
if (isIR && anyKts) {
environment.messageCollector.report(
STRONG_WARNING,
"IR backend does not support .kts scripts, switching to old JVM backend"
)
isIR = false
}
val generationState = GenerationState.Builder(
environment.project,
ClassBuilderFactories.BINARIES,