From 50d150ace5248b5150f578f37c93ae1c8f5f79b9 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Thu, 10 Jun 2021 16:44:57 +0300 Subject: [PATCH] K/N: Avoid reporting excessive "error: compilation failed: null" message This could happen if the source of the exception is inside of KotlinIrLinker/KonanIrLinker or IR deserializers. --- .../cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt index 3d637894b9f..a5267d9afb3 100644 --- a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt +++ b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.cli.bc import com.intellij.openapi.Disposable import org.jetbrains.annotations.NotNull import org.jetbrains.annotations.Nullable +import org.jetbrains.kotlin.analyzer.CompilationErrorException import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion import org.jetbrains.kotlin.backend.konan.* import org.jetbrains.kotlin.cli.common.* @@ -78,9 +79,10 @@ class K2Native : CLICompiler() { val konanConfig = KonanConfig(project, configuration) ensureModuleName(konanConfig, environment) runTopLevelPhases(konanConfig, environment) - } catch (e: KonanCompilationException) { - return ExitCode.COMPILATION_ERROR } catch (e: Throwable) { + if (e is KonanCompilationException || e is CompilationErrorException) + return ExitCode.COMPILATION_ERROR + configuration.report(ERROR, """ |Compilation failed: ${e.message}