Skip to content

Commit 78c716f

Browse files
anton-bannykhSpace Team
authored and
Space Team
committed
[K/N] hide the MissingXcodeException stacktrace
^KT-58097 fixed
1 parent dc996f5 commit 78c716f

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

native/cli-native/src/org/jetbrains/kotlin/cli/bc/K2Native.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.config.*
2323
import org.jetbrains.kotlin.ir.linkage.partial.partialLinkageConfig
2424
import org.jetbrains.kotlin.ir.linkage.partial.setupPartialLinkageConfig
2525
import org.jetbrains.kotlin.ir.util.IrMessageLogger
26+
import org.jetbrains.kotlin.konan.KonanPendingCompilationError
2627
import org.jetbrains.kotlin.library.metadata.KlibMetadataVersion
2728
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
2829
import org.jetbrains.kotlin.psi.KtFile
@@ -67,6 +68,11 @@ class K2Native : CLICompiler<K2NativeCompilerArguments>() {
6768
if (e is KonanCompilationException || e is CompilationErrorException || e is IrValidationError)
6869
return ExitCode.COMPILATION_ERROR
6970

71+
if (e is KonanPendingCompilationError) {
72+
configuration.report(ERROR, e.message)
73+
return ExitCode.COMPILATION_ERROR
74+
}
75+
7076
configuration.report(ERROR, """
7177
|Compilation failed: ${e.message}
7278

native/utils/src/org/jetbrains/kotlin/konan/Exceptions.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ package org.jetbrains.kotlin.konan
2121
*/
2222
open class KonanException(message: String = "", cause: Throwable? = null) : Exception(message, cause)
2323

24+
/**
25+
* The message is reported as a compilation error. Used when MessageCollector instance is unavailable.
26+
*/
27+
interface KonanPendingCompilationError {
28+
val message: String
29+
}
30+
2431
/**
2532
* An error occurred during external tool invocation. Such as non-zero exit code.
2633
*/
@@ -29,7 +36,7 @@ class KonanExternalToolFailure(message: String, val toolName: String, cause: Thr
2936
/**
3037
* An exception indicating a failed attempt to access some parts of Xcode (e.g. get SDK paths or version).
3138
*/
32-
class MissingXcodeException(message: String, cause: Throwable? = null) : KonanException(message, cause)
39+
class MissingXcodeException(override val message: String, cause: Throwable? = null) : KonanException(message, cause), KonanPendingCompilationError
3340

3441
/**
3542
* Native exception handling in Kotlin: terminate, wrap, etc.

0 commit comments

Comments
 (0)