diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index 0052fa8a2cd..eb1ea6cab55 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -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, 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,