From 1e691cdf63bf2a53f35f1d3a736fd76d14c13095 Mon Sep 17 00:00:00 2001 From: Anna Antonova Date: Wed, 28 Jan 2026 09:59:35 +0100 Subject: [PATCH] [kotlin] KTIJ-36967 AbstractRangeInspection is also an AbstractKotlinInspection, remove DeprecationCollectingInspection GitOrigin-RevId: 4b0c5f0f41940ba1880bec7b1c4cb063cacb9f2d --- .../DeprecationCollectingInspection.kt | 51 ------------------- .../inspections/AbstractRangeInspection.kt | 24 ++++----- 2 files changed, 10 insertions(+), 65 deletions(-) delete mode 100644 plugins/kotlin/code-insight/api/src/org/jetbrains/kotlin/idea/codeinsight/api/classic/inspections/DeprecationCollectingInspection.kt diff --git a/plugins/kotlin/code-insight/api/src/org/jetbrains/kotlin/idea/codeinsight/api/classic/inspections/DeprecationCollectingInspection.kt b/plugins/kotlin/code-insight/api/src/org/jetbrains/kotlin/idea/codeinsight/api/classic/inspections/DeprecationCollectingInspection.kt deleted file mode 100644 index c10902dd3e13..000000000000 --- a/plugins/kotlin/code-insight/api/src/org/jetbrains/kotlin/idea/codeinsight/api/classic/inspections/DeprecationCollectingInspection.kt +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections - -import com.intellij.codeInspection.LocalInspectionToolSession -import com.intellij.codeInspection.ProblemsHolder -import com.intellij.openapi.util.Key -import com.intellij.psi.PsiFile -import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings -import org.jetbrains.kotlin.idea.statistics.InspectionData -import org.jetbrains.kotlin.idea.statistics.LanguageFeatureDeprecationCollector - -/** - * An inspection that can produce deprecation data about the code it is operating on. - * The [defaultDeprecationData] needs to be provided for the functionality to function, - * but it can be left null to disable any statistics from being gathered or collected. - */ -abstract class DeprecationCollectingInspection( - private val collector: LanguageFeatureDeprecationCollector? = null, - private val defaultDeprecationData: T? = null -) : AbstractKotlinInspection() { - private val deprecationDataKey = Key.create("deprecation_data") - - private val LocalInspectionToolSession.deprecationData - get() = getUserData(deprecationDataKey) - - private fun LocalInspectionToolSession.isFullInspection(): Boolean { - return priorityRange == file.textRange && restrictRange == file.textRange - } - - protected fun LocalInspectionToolSession.updateDeprecationData(f: (T) -> T) { - val existingData = deprecationData ?: return - putUserData(deprecationDataKey, f(existingData)) - } - - override fun inspectionStarted(session: LocalInspectionToolSession, isOnTheFly: Boolean) { - if (!session.isFullInspection()) return - defaultDeprecationData?.let { - session.putUserData(deprecationDataKey, it) - } - } - - override fun inspectionFinished(session: LocalInspectionToolSession, problemsHolder: ProblemsHolder) { - if (!session.isFullInspection()) return - val data = session.deprecationData ?: defaultDeprecationData ?: return - reportDeprecationData(data, problemsHolder.file) - } - - open fun reportDeprecationData(inspectionData: T, file: PsiFile) { - collector?.logInspectionUpdated(file, inspectionData, file.languageVersionSettings.languageVersion) - } -} \ No newline at end of file diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/inspections/AbstractRangeInspection.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/inspections/AbstractRangeInspection.kt index 8a7febe08977..9da31df376de 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/inspections/AbstractRangeInspection.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/inspections/AbstractRangeInspection.kt @@ -5,10 +5,8 @@ package org.jetbrains.kotlin.idea.inspections import com.intellij.codeInspection.LocalInspectionToolSession import com.intellij.codeInspection.ProblemsHolder import org.jetbrains.kotlin.idea.caches.resolve.analyze +import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.AbstractKotlinInspection import org.jetbrains.kotlin.idea.codeinsight.utils.RangeKtExpressionType -import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.DeprecationCollectingInspection -import org.jetbrains.kotlin.idea.statistics.LanguageFeatureDeprecationCollector -import org.jetbrains.kotlin.idea.statistics.NewAndDeprecatedFeaturesInspectionData import org.jetbrains.kotlin.idea.util.getRangeBinaryExpressionType import org.jetbrains.kotlin.psi.KtBinaryExpression import org.jetbrains.kotlin.psi.KtDotQualifiedExpression @@ -20,19 +18,17 @@ import org.jetbrains.kotlin.resolve.constants.ConstantValue import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -abstract class AbstractRangeInspection( - collector: LanguageFeatureDeprecationCollector? = null, - defaultDeprecationData: NewAndDeprecatedFeaturesInspectionData? = null -) : DeprecationCollectingInspection(collector, defaultDeprecationData) { - override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession) = object : KtVisitorVoid() { - override fun visitBinaryExpression(binaryExpression: KtBinaryExpression) { - visitRange(binaryExpression, holder, session) - } +abstract class AbstractRangeInspection : AbstractKotlinInspection() { + override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): KtVisitorVoid = + object : KtVisitorVoid() { + override fun visitBinaryExpression(binaryExpression: KtBinaryExpression) { + visitRange(binaryExpression, holder, session) + } - override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) { - visitRange(expression, holder, session) + override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) { + visitRange(expression, holder, session) + } } - } private fun visitRange(expression: KtExpression, holder: ProblemsHolder, session: LocalInspectionToolSession) { val context = lazy { expression.analyze(BodyResolveMode.PARTIAL) }