Deprecate PlatformDiagnosticSuppressors::shouldReportUnusedParameter with one parameter

This commit is contained in:
Svyatoslav Kuzmich
2023-05-23 15:23:17 +02:00
committed by teamcity
parent dc4aa8c15e
commit 1dc0b054ed
4 changed files with 11 additions and 7 deletions
@@ -778,6 +778,7 @@ class ControlFlowInformationProviderImpl private constructor(
private fun processUnusedParameter(ctxt: VariableUseContext, element: KtParameter, variableDescriptor: VariableDescriptor) { private fun processUnusedParameter(ctxt: VariableUseContext, element: KtParameter, variableDescriptor: VariableDescriptor) {
val functionDescriptor = variableDescriptor.containingDeclaration as FunctionDescriptor val functionDescriptor = variableDescriptor.containingDeclaration as FunctionDescriptor
@Suppress("DEPRECATION")
if (functionDescriptor.isExpect || functionDescriptor.isActual || if (functionDescriptor.isExpect || functionDescriptor.isActual ||
functionDescriptor.isEffectivelyExternal() || functionDescriptor.isEffectivelyExternal() ||
!diagnosticSuppressor.shouldReportUnusedParameter(variableDescriptor, trace.bindingContext) || !diagnosticSuppressor.shouldReportUnusedParameter(variableDescriptor, trace.bindingContext) ||
@@ -27,13 +27,13 @@ import org.jetbrains.kotlin.resolve.BindingContext
interface PlatformDiagnosticSuppressor : PlatformSpecificExtension<PlatformDiagnosticSuppressor>{ interface PlatformDiagnosticSuppressor : PlatformSpecificExtension<PlatformDiagnosticSuppressor>{
// Function without binding context is kept for binary compatibility // Function without binding context is kept for binary compatibility
// Diagnostic should be suppressed if any of two overloads return false // Diagnostic should be suppressed if any of two overloads return false
fun shouldReportUnusedParameter(parameter: VariableDescriptor): Boolean @Deprecated("Use shouldReportUnusedParameter with bindingContext parameter")
fun shouldReportUnusedParameter(parameter: VariableDescriptor): Boolean = true
fun shouldReportUnusedParameter(parameter: VariableDescriptor, bindingContext: BindingContext): Boolean = true fun shouldReportUnusedParameter(parameter: VariableDescriptor, bindingContext: BindingContext): Boolean = true
fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean
object Default : PlatformDiagnosticSuppressor { object Default : PlatformDiagnosticSuppressor {
override fun shouldReportUnusedParameter(parameter: VariableDescriptor): Boolean = true
override fun shouldReportUnusedParameter(parameter: VariableDescriptor, bindingContext: BindingContext): Boolean = true override fun shouldReportUnusedParameter(parameter: VariableDescriptor, bindingContext: BindingContext): Boolean = true
override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean = true override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean = true
@@ -44,8 +44,12 @@ class CompositePlatformDiagnosticSuppressor(private val suppressors: List<Platfo
override fun shouldReportUnusedParameter(parameter: VariableDescriptor, bindingContext: BindingContext): Boolean = override fun shouldReportUnusedParameter(parameter: VariableDescriptor, bindingContext: BindingContext): Boolean =
suppressors.all { it.shouldReportUnusedParameter(parameter, bindingContext) } suppressors.all { it.shouldReportUnusedParameter(parameter, bindingContext) }
@Deprecated("Use shouldReportUnusedParameter with bindingContext parameter")
override fun shouldReportUnusedParameter(parameter: VariableDescriptor): Boolean = override fun shouldReportUnusedParameter(parameter: VariableDescriptor): Boolean =
suppressors.all { it.shouldReportUnusedParameter(parameter) } suppressors.all {
@Suppress("DEPRECATION")
it.shouldReportUnusedParameter(parameter)
}
override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean = override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean =
suppressors.all { it.shouldReportNoBody(descriptor) } suppressors.all { it.shouldReportNoBody(descriptor) }
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.VariableDescriptor import org.jetbrains.kotlin.descriptors.VariableDescriptor
import org.jetbrains.kotlin.name.JsStandardClassIds import org.jetbrains.kotlin.name.JsStandardClassIds
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.checkers.PlatformDiagnosticSuppressor import org.jetbrains.kotlin.resolve.checkers.PlatformDiagnosticSuppressor
private val nativeAnnotations = JsStandardClassIds.Annotations.nativeAnnotations.map { it.asSingleFqName() } private val nativeAnnotations = JsStandardClassIds.Annotations.nativeAnnotations.map { it.asSingleFqName() }
@@ -35,7 +36,8 @@ private fun DeclarationDescriptor.isLexicallyInsideJsNative(): Boolean {
} }
object JsNativeDiagnosticSuppressor : PlatformDiagnosticSuppressor { object JsNativeDiagnosticSuppressor : PlatformDiagnosticSuppressor {
override fun shouldReportUnusedParameter(parameter: VariableDescriptor): Boolean = !parameter.isLexicallyInsideJsNative() override fun shouldReportUnusedParameter(parameter: VariableDescriptor, bindingContext: BindingContext): Boolean =
!parameter.isLexicallyInsideJsNative()
override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean = !descriptor.isLexicallyInsideJsNative() override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean = !descriptor.isLexicallyInsideJsNative()
} }
@@ -25,8 +25,5 @@ object WasmDiagnosticSuppressor : PlatformDiagnosticSuppressor {
return true return true
} }
override fun shouldReportUnusedParameter(parameter: VariableDescriptor): Boolean =
true
override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean = true override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean = true
} }