From 07bddbe4d03fb48668e854f6b09b6256143bbf47 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 19 Aug 2020 15:53:37 +0300 Subject: [PATCH] [FIR CLI] Don't run generation if some errors are found --- .../cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index 4dea7284200..97e79d87a05 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -370,7 +370,7 @@ object KotlinToJVMBytecodeCompiler { val builder = RawFirBuilder(session, firProvider.kotlinScopeProvider, stubMode = false) val resolveTransformer = FirTotalResolveProcessor(session) val collector = FirDiagnosticsCollector.create(session) - val diagnostics = mutableListOf>() + val firDiagnostics = mutableListOf>() val firFiles = ktFiles.map { val firFile = builder.buildFirFile(it) firProvider.recordFile(firFile) @@ -379,7 +379,7 @@ object KotlinToJVMBytecodeCompiler { try { resolveTransformer.process(firFiles) firFiles.forEach { - diagnostics += collector.collectDiagnostics(it) + firDiagnostics += collector.collectDiagnostics(it) } } catch (e: Exception) { throw e @@ -387,13 +387,16 @@ object KotlinToJVMBytecodeCompiler { } AnalyzerWithCompilerReport.reportDiagnostics( SimpleDiagnostics( - diagnostics.map { it.toRegularDiagnostic() } + firDiagnostics.map { it.toRegularDiagnostic() } ), environment.messageCollector ) - performanceManager?.notifyAnalysisFinished() + if (firDiagnostics.any { it.severity == Severity.ERROR }) { + return false + } + performanceManager?.notifyGenerationStarted() val signaturer = IdSignatureDescriptor(JvmManglerDesc())