From 95a96f32bf292f29bdf75a1da078b83df536279c Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 26 Aug 2020 15:10:51 +0300 Subject: [PATCH] FIR IDE: log errors on diagnostics, not throw them --- .../level/api/diagnostics/FirIdeDiagnosticsCollector.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FirIdeDiagnosticsCollector.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FirIdeDiagnosticsCollector.kt index c27da7c1e94..eed429abeee 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FirIdeDiagnosticsCollector.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FirIdeDiagnosticsCollector.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.diagnostics +import com.intellij.openapi.diagnostic.Logger import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector @@ -45,10 +46,16 @@ internal class FirIdeDiagnosticsCollector private constructor( } override fun runCheck(block: (DiagnosticReporter) -> Unit) { - block(reporter) + try { + block(reporter) + } catch (e: Throwable) { + LOG.error(e) + } } companion object { + private val LOG = Logger.getInstance(FirIdeDiagnosticsCollector::class.java) + /** * Collects diagnostics for given [firFile] * Should be called under [firFile]-based lock