From 6740a596c7cf85e0d68faa420cc3d966d3403cdb Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 6 Mar 2024 15:11:53 +0200 Subject: [PATCH] [Frontend] Provide `ProjectExtensionDescriptor` for `DiagnosticSuppressor` `DiagnosticSuppressor` didn't contain `ProjectExtensionDescriptor`, which prevented usages of this extension point with API provided by `CompilerPluginRegistrar` See discussion in KT-60952 --- .../resolve/diagnostics/KotlinSuppressCache.kt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/KotlinSuppressCache.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/KotlinSuppressCache.kt index 4760cc15b02..a2168f74b62 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/KotlinSuppressCache.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/KotlinSuppressCache.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.diagnostics.AbstractKotlinSuppressCache import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.Severity +import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor import org.jetbrains.kotlin.psi.KtAnnotated import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingContext @@ -35,15 +36,21 @@ interface DiagnosticSuppressor { fun isSuppressed(diagnostic: Diagnostic): Boolean fun isSuppressed(diagnostic: Diagnostic, bindingContext: BindingContext?): Boolean = isSuppressed(diagnostic) - companion object { - val EP_NAME: ExtensionPointName = - ExtensionPointName.create("org.jetbrains.kotlin.diagnosticSuppressor") + companion object : ProjectExtensionDescriptor( + "org.jetbrains.kotlin.diagnosticSuppressor", DiagnosticSuppressor::class.java + ) { + @Deprecated( + message = "This field is deprecated for compatibility reasons. Use ProjectExtensionDescriptor API instead", + replaceWith = ReplaceWith("DiagnosticSuppressor.extensionPointName"), + level = DeprecationLevel.WARNING + ) + val EP_NAME: ExtensionPointName = extensionPointName } } abstract class KotlinSuppressCache : AbstractKotlinSuppressCache() { - private val diagnosticSuppressors = ExtensionProvider.create(DiagnosticSuppressor.EP_NAME) + private val diagnosticSuppressors = ExtensionProvider.create(DiagnosticSuppressor.extensionPointName) val filter: (Diagnostic) -> Boolean = { diagnostic: Diagnostic -> !isSuppressed(DiagnosticSuppressRequest(diagnostic))