Do not set diagnostics callback if it is already set

Relates to #KT-37702
This commit is contained in:
Vladimir Dolzhenko
2021-05-10 09:59:16 +02:00
parent cf5e6b242b
commit c98dba6aea
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.resolve.diagnostics
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.util.CompositeModificationTracker
import com.intellij.psi.PsiElement
import com.intellij.psi.util.CachedValueProvider
@@ -48,8 +49,10 @@ class MutableDiagnosticsWithSuppression(
override fun noSuppression() = readonlyView().noSuppression()
override fun setCallback(callback: DiagnosticSink.DiagnosticsCallback) {
// TODO: [VD] temporary dirty patch, proper investigation is required
// assert(diagnosticsCallback == null) { "diagnostic callback has been already registered" }
diagnosticsCallback?.let {
Logger.getInstance(MutableDiagnosticsWithSuppression::class.java).error("diagnostic callback has been already registered")
return
}
diagnosticsCallback = callback
delegateDiagnostics.setCallback(callback)
}