diff --git a/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt b/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt index 02b9430f113..6cebce4e186 100644 --- a/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt +++ b/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt @@ -20,8 +20,10 @@ import com.intellij.openapi.Disposable import org.jetbrains.kotlin.backend.konan.* import org.jetbrains.kotlin.backend.konan.util.profile import org.jetbrains.kotlin.cli.common.CLICompiler +import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.CLITool import org.jetbrains.kotlin.cli.common.ExitCode +import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.* import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.CommonConfigurationKeys @@ -68,11 +70,19 @@ class K2Native : CLICompiler() { } catch (e: KonanCompilationException) { return ExitCode.COMPILATION_ERROR } - // TODO: catch Errors and IllegalStateException. + if (arguments.freeArgs.isEmpty() && !arguments.isUsefulWithoutFreeArgs) { + val messageCollector = configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) + messageCollector.report(ERROR, "You have not specified any compilation arguments. No output has been produced.") + } + + // TODO: catch Errors and IllegalStateException. return ExitCode.OK } + val K2NativeCompilerArguments.isUsefulWithoutFreeArgs: Boolean + get() = this.listTargets || this.listPhases + fun Array?.toNonNullList(): List { return this?.asList() ?: listOf() }