FIR IDE: log errors on diagnostics, not throw them

This commit is contained in:
Ilya Kirillov
2020-08-26 15:10:51 +03:00
parent ebafd0fb51
commit 95a96f32bf
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.idea.fir.low.level.api.diagnostics 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.diagnostics.Diagnostic
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector
@@ -45,10 +46,16 @@ internal class FirIdeDiagnosticsCollector private constructor(
} }
override fun runCheck(block: (DiagnosticReporter) -> Unit) { override fun runCheck(block: (DiagnosticReporter) -> Unit) {
block(reporter) try {
block(reporter)
} catch (e: Throwable) {
LOG.error(e)
}
} }
companion object { companion object {
private val LOG = Logger.getInstance(FirIdeDiagnosticsCollector::class.java)
/** /**
* Collects diagnostics for given [firFile] * Collects diagnostics for given [firFile]
* Should be called under [firFile]-based lock * Should be called under [firFile]-based lock