Do not call IR backend when there's a script involved
This commit is contained in:
+12
-4
@@ -39,8 +39,7 @@ import org.jetbrains.kotlin.cli.common.ExitCode
|
|||||||
import org.jetbrains.kotlin.cli.common.checkKotlinPackageUsage
|
import org.jetbrains.kotlin.cli.common.checkKotlinPackageUsage
|
||||||
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot
|
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot
|
||||||
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
|
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.*
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.WARNING
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil
|
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil
|
||||||
import org.jetbrains.kotlin.cli.common.output.writeAll
|
import org.jetbrains.kotlin.cli.common.output.writeAll
|
||||||
@@ -612,8 +611,17 @@ object KotlinToJVMBytecodeCompiler {
|
|||||||
sourceFiles: List<KtFile>,
|
sourceFiles: List<KtFile>,
|
||||||
module: Module?
|
module: Module?
|
||||||
): GenerationState {
|
): GenerationState {
|
||||||
val isIR = configuration.getBoolean(JVMConfigurationKeys.IR) ||
|
// The IR backend does not handle .kts files yet.
|
||||||
configuration.getBoolean(CommonConfigurationKeys.USE_FIR)
|
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(
|
val generationState = GenerationState.Builder(
|
||||||
environment.project,
|
environment.project,
|
||||||
ClassBuilderFactories.BINARIES,
|
ClassBuilderFactories.BINARIES,
|
||||||
|
|||||||
Reference in New Issue
Block a user