frontend: Stop compilation in case of frontend error

This commit is contained in:
Ilya Matveev
2017-02-20 11:18:37 +03:00
committed by ilmat192
parent 951964e057
commit 489723721f
3 changed files with 22 additions and 24 deletions
@@ -1,26 +1,18 @@
package org.jetbrains.kotlin.cli.bc
import org.jetbrains.kotlin.backend.konan.*
import org.jetbrains.kotlin.backend.konan.util.profile
import com.intellij.openapi.Disposable
import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.backend.konan.KonanCompilationException
import org.jetbrains.kotlin.backend.konan.KonanConfig
import org.jetbrains.kotlin.backend.konan.KonanConfigKeys
import org.jetbrains.kotlin.backend.konan.runTopLevelPhases
import org.jetbrains.kotlin.backend.konan.util.profile
import org.jetbrains.kotlin.cli.common.CLICompiler
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.ExitCode
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport
import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.backend.konan.KonanConfigKeys
import org.jetbrains.kotlin.backend.konan.Distribution
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.Services
import org.jetbrains.kotlin.config.addKotlinSourceRoots
import org.jetbrains.kotlin.ir.util.DumpIrTreeVisitor
import org.jetbrains.kotlin.psi2ir.Psi2IrConfiguration
import org.jetbrains.kotlin.psi2ir.Psi2IrTranslator
import org.jetbrains.kotlin.psi.KtFile
import java.lang.System.out
import java.util.*
class K2Native : CLICompiler<K2NativeCompilerArguments>() {
@@ -36,7 +28,12 @@ class K2Native : CLICompiler<K2NativeCompilerArguments>() {
val project = environment.project
val konanConfig = KonanConfig(project, configuration)
runTopLevelPhases(konanConfig, environment)
try {
runTopLevelPhases(konanConfig, environment)
} catch (e: KonanCompilationException) {
return ExitCode.COMPILATION_ERROR
}
// TODO: catch Errors and IllegalStateException.
return ExitCode.OK
}