From fbe18164b4f0dfa7b1380aab0cfdb34454f76237 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Thu, 11 Mar 2021 08:43:36 +0000 Subject: [PATCH] Filter KtAnnotated on-the-fly diagnostic elements Relates to #KTIJ-1760 Relates to #KT-45254 --- .../diagnostics/MutableDiagnosticsWithSuppression.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 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 0d10a49f984..c224d90d9cb 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/MutableDiagnosticsWithSuppression.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/MutableDiagnosticsWithSuppression.kt @@ -23,7 +23,7 @@ import com.intellij.util.CachedValueImpl import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.DiagnosticSink -import org.jetbrains.kotlin.psi.KtAnnotationEntry +import org.jetbrains.kotlin.psi.KtAnnotated import org.jetbrains.kotlin.psi.KtStubbedPsiUtil class MutableDiagnosticsWithSuppression( @@ -65,18 +65,18 @@ class MutableDiagnosticsWithSuppression( } fun report(diagnostic: Diagnostic) { - onFlyDiagnosticsCallback(diagnostic)?.callback(diagnostic) + onTheFlyDiagnosticsCallback(diagnostic)?.callback(diagnostic) diagnosticList.add(diagnostic) modificationTracker.incModificationCount() } - private fun onFlyDiagnosticsCallback(diagnostic: Diagnostic): DiagnosticSink.DiagnosticsCallback? = + private fun onTheFlyDiagnosticsCallback(diagnostic: Diagnostic): DiagnosticSink.DiagnosticsCallback? = diagnosticsCallback.takeIf { diagnosticsCallback != null && // Due to a potential recursion in filter.invoke (via LazyAnnotations) do not try to report - // diagnostic on fly if it happened in annotations - KtStubbedPsiUtil.getPsiOrStubParent(diagnostic.psiElement, KtAnnotationEntry::class.java, false) == null && + // diagnostic on-the-fly if it happened in annotations, and do not report any potentially suppressed elements + KtStubbedPsiUtil.getPsiOrStubParent(diagnostic.psiElement, KtAnnotated::class.java, false) == null && suppressCache.filter.invoke(diagnostic) }