From c98dba6aead64aab2ab560249e7807a252617f88 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Mon, 10 May 2021 09:59:16 +0200 Subject: [PATCH] Do not set diagnostics callback if it is already set Relates to #KT-37702 --- .../diagnostics/MutableDiagnosticsWithSuppression.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/MutableDiagnosticsWithSuppression.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/MutableDiagnosticsWithSuppression.kt index c224d90d9cb..91b96df2a0f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/MutableDiagnosticsWithSuppression.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/MutableDiagnosticsWithSuppression.kt @@ -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) }