mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] KTIJ-36967 change inspections type from DeprecationCollectingInspection to AbstractKotlinInspection
GitOrigin-RevId: 0714e44dc458ff576dd56d5252c250912816c5e6
This commit is contained in:
committed by
intellij-monorepo-bot
parent
935d6f046e
commit
8a14a9cbb1
+2
-7
@@ -22,9 +22,8 @@ import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.*
|
||||
import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.DeprecationCollectingInspection
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.AbstractKotlinInspection
|
||||
import org.jetbrains.kotlin.idea.codeinsights.impl.base.isOptInRequired
|
||||
import org.jetbrains.kotlin.idea.statistics.DeprecatedFeaturesInspectionData
|
||||
import org.jetbrains.kotlin.idea.statistics.KotlinLanguageFeaturesFUSCollector
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -35,10 +34,7 @@ import org.jetbrains.kotlin.psi.*
|
||||
*
|
||||
* See [KTIJ-22298](https://youtrack.jetbrains.com/issue/KTIJ-22298/Soft-deprecate-Enumvalues-for-Kotlin-callers).
|
||||
*/
|
||||
abstract class EnumValuesSoftDeprecateInspectionBase : DeprecationCollectingInspection<DeprecatedFeaturesInspectionData>(
|
||||
collector = KotlinLanguageFeaturesFUSCollector.enumEntriesCollector,
|
||||
defaultDeprecationData = DeprecatedFeaturesInspectionData()
|
||||
) {
|
||||
abstract class EnumValuesSoftDeprecateInspectionBase : AbstractKotlinInspection() {
|
||||
|
||||
protected open fun isEnumValuesSoftDeprecateEnabled(file: KtFile): Boolean = file.isEnumValuesSoftDeprecateEnabled()
|
||||
|
||||
@@ -59,7 +55,6 @@ abstract class EnumValuesSoftDeprecateInspectionBase : DeprecationCollectingInsp
|
||||
return
|
||||
}
|
||||
val quickFix = createQuickFix(callExpression, resolvedCallSymbol) ?: return
|
||||
session.updateDeprecationData { it.withDeprecatedFeature() }
|
||||
holder.registerProblem(
|
||||
callExpression,
|
||||
displayName,
|
||||
|
||||
+10
-20
@@ -1,7 +1,6 @@
|
||||
// Copyright 2000-2025 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.inspections.shared
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.LocalQuickFix
|
||||
import com.intellij.codeInspection.ProblemDescriptor
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
@@ -10,32 +9,30 @@ import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.resolution.singleFunctionCallOrNull
|
||||
import org.jetbrains.kotlin.analysis.api.resolution.symbol
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.utils.RangeKtExpressionType
|
||||
import org.jetbrains.kotlin.idea.codeInsight.inspections.shared.AbstractRangeInspection.Companion.rangeExpressionByPsi
|
||||
import org.jetbrains.kotlin.idea.codeInsight.inspections.shared.utils.canUseRangeUntil
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.DeprecationCollectingInspection
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.AbstractKotlinInspection
|
||||
import org.jetbrains.kotlin.idea.codeinsight.utils.RangeKtExpressionType
|
||||
import org.jetbrains.kotlin.idea.statistics.KotlinLanguageFeaturesFUSCollector
|
||||
import org.jetbrains.kotlin.idea.statistics.NewAndDeprecatedFeaturesInspectionData
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
class ReplaceUntilWithRangeUntilInspection : DeprecationCollectingInspection<NewAndDeprecatedFeaturesInspectionData>(
|
||||
collector = KotlinLanguageFeaturesFUSCollector.rangeUntilCollector,
|
||||
defaultDeprecationData = NewAndDeprecatedFeaturesInspectionData()
|
||||
) {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): KtVisitorVoid =
|
||||
class ReplaceUntilWithRangeUntilInspection : AbstractKotlinInspection() {
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean
|
||||
): KtVisitorVoid =
|
||||
object : KtVisitorVoid() {
|
||||
override fun visitBinaryExpression(binaryExpression: KtBinaryExpression) {
|
||||
visitRange(binaryExpression, holder, session)
|
||||
visitRange(binaryExpression, holder)
|
||||
}
|
||||
|
||||
override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) {
|
||||
visitRange(expression, holder, session)
|
||||
visitRange(expression, holder)
|
||||
}
|
||||
}
|
||||
|
||||
private fun visitRange(expression: KtExpression, holder: ProblemsHolder, session: LocalInspectionToolSession) {
|
||||
private fun visitRange(expression: KtExpression, holder: ProblemsHolder) {
|
||||
val rangeExpression = rangeExpressionByPsi(expression) ?: return
|
||||
|
||||
analyze(expression) {
|
||||
@@ -46,13 +43,6 @@ class ReplaceUntilWithRangeUntilInspection : DeprecationCollectingInspection<New
|
||||
}
|
||||
|
||||
val rangeKtExpressionType = rangeExpression.type
|
||||
session.updateDeprecationData {
|
||||
when (rangeKtExpressionType) {
|
||||
RangeKtExpressionType.UNTIL -> it.withDeprecatedFeature()
|
||||
RangeKtExpressionType.RANGE_UNTIL -> it.withNewFeature()
|
||||
else -> it
|
||||
}
|
||||
}
|
||||
if (rangeKtExpressionType != RangeKtExpressionType.UNTIL) return
|
||||
|
||||
holder.registerProblem(
|
||||
|
||||
+5
-12
@@ -1,7 +1,6 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.LocalQuickFix
|
||||
import com.intellij.codeInspection.ProblemDescriptor
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
@@ -21,7 +20,7 @@ import org.jetbrains.kotlin.idea.base.psi.singleExpressionBody
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.base.utils.fqname.fqName
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.DeprecationCollectingInspection
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.AbstractKotlinInspection
|
||||
import org.jetbrains.kotlin.idea.core.resolveType
|
||||
import org.jetbrains.kotlin.idea.inspections.CanSealedSubClassBeObjectInspection.Util.asKtClass
|
||||
import org.jetbrains.kotlin.idea.inspections.VirtualFunction.*
|
||||
@@ -29,7 +28,6 @@ import org.jetbrains.kotlin.idea.inspections.VirtualFunction.Function
|
||||
import org.jetbrains.kotlin.idea.intentions.conventionNameCalls.*
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.descriptor
|
||||
import org.jetbrains.kotlin.idea.statistics.KotlinLanguageFeaturesFUSCollector
|
||||
import org.jetbrains.kotlin.idea.statistics.NewAndDeprecatedFeaturesInspectionData
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -48,18 +46,14 @@ private typealias CallChain = List<CallChainElement>
|
||||
* Tests:
|
||||
* [org.jetbrains.kotlin.idea.inspections.LocalInspectionTestGenerated.ConvertObjectToDataObject]
|
||||
*/
|
||||
class ConvertObjectToDataObjectInspection : DeprecationCollectingInspection<NewAndDeprecatedFeaturesInspectionData>(
|
||||
collector = KotlinLanguageFeaturesFUSCollector.dataObjectCollector,
|
||||
defaultDeprecationData = NewAndDeprecatedFeaturesInspectionData()
|
||||
) {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor =
|
||||
if (holder.file.languageVersionSettings.supportsFeature(LanguageFeature.DataObjects)) ObjectVisitor(holder, session)
|
||||
class ConvertObjectToDataObjectInspection : AbstractKotlinInspection() {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor =
|
||||
if (holder.file.languageVersionSettings.supportsFeature(LanguageFeature.DataObjects)) ObjectVisitor(holder)
|
||||
else PsiElementVisitor.EMPTY_VISITOR
|
||||
|
||||
private inner class ObjectVisitor(private val holder: ProblemsHolder, private val session: LocalInspectionToolSession) : KtVisitorVoid() {
|
||||
private class ObjectVisitor(private val holder: ProblemsHolder) : KtVisitorVoid() {
|
||||
override fun visitObjectDeclaration(ktObject: KtObjectDeclaration) {
|
||||
if (ktObject.isData()) {
|
||||
session.updateDeprecationData { it.withNewFeature() }
|
||||
return
|
||||
}
|
||||
if (ktObject.isCompanion() || ktObject.isObjectLiteral()) return
|
||||
@@ -68,7 +62,6 @@ class ConvertObjectToDataObjectInspection : DeprecationCollectingInspection<NewA
|
||||
val isSealedSubClassCase by lazy { toString == TrivialSuper && ktObject.isSubclassOfSealed() }
|
||||
val isToStringCase by lazy { toString is Function && isCompatibleToString(ktObject, fqName, toString.function) }
|
||||
if ((isSealedSubClassCase || isToStringCase) && isCompatibleHashCode(ktObject, fqName) && isCompatibleEquals(ktObject, fqName)) {
|
||||
session.updateDeprecationData { it.withDeprecatedFeature() }
|
||||
holder.registerProblem(
|
||||
ktObject.getObjectKeyword() ?: return,
|
||||
KotlinBundle.message(
|
||||
|
||||
Reference in New Issue
Block a user