mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] KTIJ-29133 only kotlin visitors are acceptable
GitOrigin-RevId: dd0f52a5f7c3f66ffe72d9c9e34c78a920de300a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c4623831b3
commit
0141610b39
+11
-1
@@ -8,6 +8,7 @@ import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.KotlinApplicableToolBase
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtVisitor
|
||||
|
||||
/**
|
||||
* [AbstractKotlinApplicableInspectionBase] is a base implementation for [AbstractKotlinApplicableInspection] and
|
||||
@@ -64,5 +65,14 @@ abstract class AbstractKotlinApplicableInspectionBase<ELEMENT : KtElement> : Loc
|
||||
}
|
||||
}
|
||||
|
||||
abstract override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor
|
||||
abstract override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
): KtVisitor<*, *>
|
||||
|
||||
final override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
session: LocalInspectionToolSession,
|
||||
): PsiElementVisitor = super.buildVisitor(holder, isOnTheFly, session)
|
||||
}
|
||||
|
||||
+7
-7
@@ -2,11 +2,9 @@
|
||||
package org.jetbrains.kotlin.idea.codeinsights.impl.base.inspections
|
||||
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.psi.tree.TokenSet
|
||||
import org.jetbrains.kotlin.analysis.api.diagnostics.KtDiagnosticWithPsi
|
||||
import org.jetbrains.kotlin.idea.base.psi.isRedundant
|
||||
@@ -23,11 +21,13 @@ abstract class RedundantModifierInspectionBase<DIAGNOSTIC : KtDiagnosticWithPsi<
|
||||
) : AbstractKotlinApplicableDiagnosticInspectionWithContext<KtModifierListOwner, DIAGNOSTIC, RedundantModifierInspectionBase.ModifierContext>(),
|
||||
CleanupLocalInspectionTool {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitDeclaration(dcl: KtDeclaration) {
|
||||
visitTargetElement(dcl, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitDeclaration(dcl: KtDeclaration) {
|
||||
visitTargetElement(dcl, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
class ModifierContext(val modifier: KtModifierKeywordToken)
|
||||
|
||||
+8
-7
@@ -1,11 +1,9 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
@@ -22,13 +20,16 @@ import org.jetbrains.kotlin.psi.KtVisitorVoid
|
||||
internal class CanBePrimaryConstructorPropertyInspection
|
||||
: AbstractKotlinApplicableInspectionWithContext<KtProperty, MovePropertyToConstructorInfo>() {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitProperty(property: KtProperty) {
|
||||
visitTargetElement(property, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitProperty(property: KtProperty) {
|
||||
visitTargetElement(property, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtProperty, context: MovePropertyToConstructorInfo): String = KotlinBundle.message(
|
||||
"property.is.explicitly.assigned.to.parameter.0.can", element.name ?: "???"
|
||||
)
|
||||
|
||||
+11
-8
@@ -2,13 +2,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemHighlightType
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.psi.isMultiLine
|
||||
import org.jetbrains.kotlin.idea.base.psi.textRangeIn
|
||||
@@ -21,7 +19,10 @@ import org.jetbrains.kotlin.idea.codeinsight.api.applicators.KotlinApplicability
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicators.applicabilityRange
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.anyDescendantOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.endOffset
|
||||
import org.jetbrains.kotlin.psi.psiUtil.siblings
|
||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
|
||||
class FoldInitializerAndIfToElvisInspection :
|
||||
@@ -57,11 +58,13 @@ class FoldInitializerAndIfToElvisInspection :
|
||||
|
||||
override fun getActionFamilyName() = KotlinBundle.message("replace.if.with.elvis.operator")
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitIfExpression(expression: KtIfExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitIfExpression(expression: KtIfExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-7
@@ -1,11 +1,9 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspectionWithContext
|
||||
@@ -19,13 +17,16 @@ import org.jetbrains.kotlin.renderer.render
|
||||
internal class ImplicitThisInspection :
|
||||
AbstractKotlinApplicableInspectionWithContext<KtExpression, ImplicitReceiverInfo>() {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitExpression(expression: KtExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitExpression(expression: KtExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtExpression, context: ImplicitReceiverInfo): String =
|
||||
KotlinBundle.message("inspection.implicit.this.display.name")
|
||||
|
||||
|
||||
+11
-7
@@ -2,13 +2,15 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.codeInspection.options.OptPane
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.PsiComment
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReferenceService
|
||||
import com.intellij.psi.PsiWhiteSpace
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import com.intellij.psi.util.parentOfType
|
||||
import com.intellij.psi.util.parents
|
||||
@@ -59,11 +61,13 @@ class JoinDeclarationAndAssignmentInspection :
|
||||
|
||||
override fun getProblemDescription(element: KtProperty, context: Context) = KotlinBundle.message("can.be.joined.with.assignment")
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitProperty(property: KtProperty) {
|
||||
visitTargetElement(property, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitProperty(property: KtProperty) {
|
||||
visitTargetElement(property, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-8
@@ -1,14 +1,12 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemHighlightType
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.codeInspection.util.InspectionMessage
|
||||
import com.intellij.codeInspection.util.IntentionFamilyName
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.idea.base.psi.textRangeIn
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspection
|
||||
@@ -36,12 +34,10 @@ class MoveLambdaOutsideParenthesesInspection : AbstractKotlinApplicableInspectio
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
session: LocalInspectionToolSession
|
||||
): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitCallExpression(expression: KtCallExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitCallExpression(expression: KtCallExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-7
@@ -1,11 +1,9 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.psi.replaced
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
@@ -24,11 +22,14 @@ import org.jetbrains.kotlin.psi.*
|
||||
* See plugins/kotlin/code-insight/descriptions/resources-en/inspectionDescriptions/NullableBooleanElvis.html for details.
|
||||
*/
|
||||
internal class NullableBooleanElvisInspection : AbstractKotlinApplicableInspection<KtBinaryExpression>() {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
override fun getProblemDescription(element: KtBinaryExpression): String = KotlinBundle.message("inspection.nullable.boolean.elvis.display.name")
|
||||
|
||||
+8
-6
@@ -1,7 +1,6 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
@@ -50,12 +49,15 @@ class RedundantElseInIfInspection : AbstractKotlinApplicableInspection<KtIfExpre
|
||||
|
||||
override fun getActionFamilyName(): String = KotlinBundle.message("remove.redundant.else.fix.text")
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession) =
|
||||
object : KtVisitorVoid() {
|
||||
override fun visitIfExpression(expression: KtIfExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitIfExpression(expression: KtIfExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getApplicabilityRange(): KotlinApplicabilityRange<KtIfExpression> = applicabilityRange {
|
||||
it.lastSingleElseKeyword()?.textRange?.shiftRight(-it.startOffset)
|
||||
|
||||
+9
-7
@@ -1,12 +1,10 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.psi.util.elementType
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.psi.safeDeparenthesize
|
||||
@@ -23,13 +21,17 @@ import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes
|
||||
|
||||
internal class RedundantElvisReturnNullInspection : AbstractKotlinApplicableInspection<KtBinaryExpression>() {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtBinaryExpression): String = KotlinBundle.message("inspection.redundant.elvis.return.null.descriptor")
|
||||
override fun getActionFamilyName(): String = KotlinBundle.message("remove.redundant.elvis.return.null.text")
|
||||
|
||||
|
||||
+8
-7
@@ -1,12 +1,10 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemHighlightType
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspectionWithContext
|
||||
@@ -17,13 +15,16 @@ import org.jetbrains.kotlin.psi.*
|
||||
internal class RemoveSingleExpressionStringTemplateInspection :
|
||||
AbstractKotlinApplicableInspectionWithContext<KtStringTemplateExpression, RemoveSingleExpressionStringTemplateInspection.Context>() {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitStringTemplateExpression(expression: KtStringTemplateExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitStringTemplateExpression(expression: KtStringTemplateExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
class Context(val isString: Boolean)
|
||||
|
||||
override fun getProblemDescription(element: KtStringTemplateExpression, context: Context): String =
|
||||
|
||||
+8
-7
@@ -2,11 +2,9 @@
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.refactoring.suggested.startOffset
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.calls.successfulFunctionCallOrNull
|
||||
@@ -27,13 +25,16 @@ internal class RemoveToStringInStringTemplateInspection :
|
||||
AbstractKotlinApplicableInspection<KtDotQualifiedExpression>(),
|
||||
CleanupLocalInspectionTool {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtDotQualifiedExpression): String = KotlinBundle.message("remove.to.string.fix.text")
|
||||
override fun getActionFamilyName(): String = KotlinBundle.message("remove.to.string.fix.text")
|
||||
|
||||
|
||||
+8
-7
@@ -2,11 +2,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspection
|
||||
@@ -43,12 +41,15 @@ class ReplaceArrayOfWithLiteralInspection : AbstractKotlinApplicableInspection<K
|
||||
|
||||
override fun getActionFamilyName(): String = KotlinBundle.message("replace.with.array.literal.fix.family.name")
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor =
|
||||
object : KtVisitorVoid() {
|
||||
override fun visitCallExpression(expression: KtCallExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitCallExpression(expression: KtCallExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getApplicabilityRange(): KotlinApplicabilityRange<KtCallExpression> = ApplicabilityRanges.SELF
|
||||
|
||||
|
||||
+7
-7
@@ -1,14 +1,12 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemHighlightType
|
||||
import com.intellij.codeInspection.ProblemHighlightType.GENERIC_ERROR_OR_WARNING
|
||||
import com.intellij.codeInspection.ProblemHighlightType.INFORMATION
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.calls.KtSimpleFunctionCall
|
||||
import org.jetbrains.kotlin.analysis.api.calls.successfulCallOrNull
|
||||
@@ -33,13 +31,15 @@ import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||
internal class ReplaceGetOrSetInspection :
|
||||
AbstractKotlinApplicableInspectionWithContext<KtDotQualifiedExpression, ReplaceGetOrSetInspection.Context>() {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
class Context(val calleeName: Name, val problemHighlightType: ProblemHighlightType)
|
||||
|
||||
override fun getProblemDescription(element: KtDotQualifiedExpression, context: Context): String =
|
||||
|
||||
+7
-7
@@ -2,11 +2,9 @@
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.calls.singleVariableAccessCall
|
||||
import org.jetbrains.kotlin.analysis.api.calls.symbol
|
||||
@@ -31,11 +29,13 @@ class SelfAssignmentInspection : AbstractKotlinApplicableInspectionWithContext<K
|
||||
|
||||
override fun getActionFamilyName(): String = KotlinBundle.message("remove.self.assignment.fix.text")
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-7
@@ -3,11 +3,9 @@
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections.declarations
|
||||
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspectionWithContext
|
||||
@@ -21,13 +19,16 @@ internal class RedundantUnitReturnTypeInspection :
|
||||
AbstractKotlinApplicableInspectionWithContext<KtNamedFunction, TypeInfo>(),
|
||||
CleanupLocalInspectionTool {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitNamedFunction(function: KtNamedFunction) {
|
||||
visitTargetElement(function, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitNamedFunction(function: KtNamedFunction) {
|
||||
visitTargetElement(function, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtNamedFunction, context: TypeInfo): String =
|
||||
KotlinBundle.message("inspection.redundant.unit.return.type.display.name")
|
||||
|
||||
|
||||
+10
-10
@@ -1,7 +1,6 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections.declarations
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemHighlightType
|
||||
import com.intellij.codeInspection.ProblemHighlightType.GENERIC_ERROR_OR_WARNING
|
||||
import com.intellij.codeInspection.ProblemHighlightType.INFORMATION
|
||||
@@ -12,7 +11,6 @@ import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.psi.isOneLiner
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
@@ -39,15 +37,17 @@ class UseExpressionBodyInspection :
|
||||
element: KtDeclarationWithBody, context: Context
|
||||
): @InspectionMessage String = KotlinBundle.message("use.expression.body.instead.of.0", context.subject)
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitNamedFunction(function: KtNamedFunction) {
|
||||
visitTargetElement(function, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitPropertyAccessor(accessor: KtPropertyAccessor) {
|
||||
visitTargetElement(accessor, holder, isOnTheFly)
|
||||
}
|
||||
override fun visitNamedFunction(function: KtNamedFunction) {
|
||||
visitTargetElement(function, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun visitPropertyAccessor(accessor: KtPropertyAccessor) {
|
||||
visitTargetElement(accessor, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+9
-7
@@ -2,11 +2,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections.diagnosticBased
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtDiagnosticCheckerFilter
|
||||
import org.jetbrains.kotlin.analysis.api.fir.diagnostics.KtFirDiagnostic
|
||||
@@ -21,13 +19,17 @@ import org.jetbrains.kotlin.psi.*
|
||||
|
||||
internal class UnusedVariableInspection
|
||||
: AbstractKotlinApplicableInspection<KtNamedDeclaration>(), AbstractKotlinApplicableDiagnosticInspection<KtNamedDeclaration, KtFirDiagnostic.UnusedVariable> {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitNamedDeclaration(declaration: KtNamedDeclaration) {
|
||||
visitTargetElement(declaration, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitNamedDeclaration(declaration: KtNamedDeclaration) {
|
||||
visitTargetElement(declaration, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtNamedDeclaration): String =
|
||||
KotlinBundle.message("inspection.kotlin.unused.variable.display.name")
|
||||
|
||||
|
||||
+9
-7
@@ -1,12 +1,10 @@
|
||||
// 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.k2.codeinsight.inspections.expressions
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspection
|
||||
@@ -18,13 +16,17 @@ import org.jetbrains.kotlin.psi.KtPrefixExpression
|
||||
import org.jetbrains.kotlin.psi.KtVisitorVoid
|
||||
|
||||
internal class KotlinDoubleNegationInspection : AbstractKotlinApplicableInspection<KtPrefixExpression>() {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitPrefixExpression(expression: KtPrefixExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitPrefixExpression(expression: KtPrefixExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtPrefixExpression): String =
|
||||
KotlinBundle.message("inspection.kotlin.double.negation.display.name")
|
||||
|
||||
|
||||
+8
-7
@@ -3,12 +3,10 @@
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.inspections.expressions
|
||||
|
||||
import com.intellij.codeInsight.intention.FileModifier
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemHighlightType
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.calls.KtSimpleFunctionCall
|
||||
@@ -34,13 +32,16 @@ import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||
internal class ReplaceCallWithBinaryOperatorInspection :
|
||||
AbstractKotlinApplicableInspectionWithContext<KtDotQualifiedExpression, ReplaceCallWithBinaryOperatorInspection.Context>() {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
@FileModifier.SafeTypeForPreview
|
||||
data class Context(val operation: KtSingleValueToken, val isFloatingPointEquals: Boolean)
|
||||
|
||||
|
||||
+8
-7
@@ -1,11 +1,9 @@
|
||||
// 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.k2.codeinsight.inspections.expressions
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.receiverType
|
||||
@@ -28,11 +26,14 @@ private val COLLECTION_CLASS_IDS = setOf(StandardClassIds.Collection, StandardCl
|
||||
StandardClassIds.elementTypeByPrimitiveArrayType.keys + StandardClassIds.unsignedArrayTypeByElementType.keys
|
||||
|
||||
internal class ReplaceCollectionCountWithSizeInspection : AbstractKotlinApplicableInspection<KtCallExpression>() {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitCallExpression(expression: KtCallExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitCallExpression(expression: KtCallExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-7
@@ -1,11 +1,9 @@
|
||||
// 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.k2.codeinsight.inspections.expressions
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.calls.*
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspectionWithContext
|
||||
@@ -19,13 +17,16 @@ import org.jetbrains.kotlin.psi.*
|
||||
internal sealed class ReplaceSizeCheckInspectionBase :
|
||||
AbstractKotlinApplicableInspectionWithContext<KtBinaryExpression, ReplaceSizeCheckInspectionBase.ReplacementInfo>() {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
enum class EmptinessCheckMethod(val callString: String) {
|
||||
IS_EMPTY("isEmpty()"), IS_NOT_EMPTY("isNotEmpty()")
|
||||
}
|
||||
|
||||
+8
-7
@@ -1,13 +1,11 @@
|
||||
// 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.k2.codeinsight.inspections.expressions
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.psi.SmartPsiElementPointer
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
import com.intellij.refactoring.suggested.startOffset
|
||||
@@ -45,13 +43,16 @@ import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer
|
||||
internal class WhenWithOnlyElseInspection
|
||||
: AbstractKotlinApplicableInspectionWithContext<KtWhenExpression, WhenWithOnlyElseInspection.Context>() {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitWhenExpression(expression: KtWhenExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitWhenExpression(expression: KtWhenExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
data class WhenSubjectVariableInfo(
|
||||
val subjectVariable: SmartPsiElementPointer<KtProperty>,
|
||||
val initializer: SmartPsiElementPointer<KtExpression>?,
|
||||
|
||||
+8
-7
@@ -2,11 +2,9 @@
|
||||
package org.jetbrains.kotlin.idea.codeInsight.inspections.shared
|
||||
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
|
||||
@@ -27,13 +25,16 @@ private val FILTER_IS_INSTANCE_CALLABLE_ID = CallableId(StandardClassIds.BASE_CO
|
||||
internal class FilterIsInstanceCallWithClassLiteralArgumentInspection :
|
||||
AbstractKotlinApplicableInspection<KtCallExpression>(), CleanupLocalInspectionTool {
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitCallExpression(expression: KtCallExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitCallExpression(expression: KtCallExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtCallExpression): String =
|
||||
KotlinBundle.message("inspection.filter.is.instance.call.with.class.literal.argument.display.name")
|
||||
|
||||
|
||||
+6
-8
@@ -1,19 +1,15 @@
|
||||
// Copyright 2000-2024 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.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspection
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicators.KotlinApplicabilityRange
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicators.applicabilityRange
|
||||
import org.jetbrains.kotlin.idea.codeinsights.impl.base.applicators.ApplicabilityRanges
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||
|
||||
internal class InfixCallToOrdinaryInspection : AbstractKotlinApplicableInspection<KtBinaryExpression>() {
|
||||
override fun getProblemDescription(element: KtBinaryExpression) = KotlinBundle.message("replace.infix.call.with.ordinary.call")
|
||||
@@ -24,10 +20,12 @@ internal class InfixCallToOrdinaryInspection : AbstractKotlinApplicableInspectio
|
||||
|
||||
override fun getActionFamilyName() = KotlinBundle.message("replace.infix.call.with.ordinary.call")
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor =
|
||||
binaryExpressionVisitor {
|
||||
visitTargetElement(it, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = binaryExpressionVisitor {
|
||||
visitTargetElement(it, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun getActionName(element: KtBinaryExpression): String = KotlinBundle.message("replace.infix.call.with.ordinary.call")
|
||||
|
||||
|
||||
+7
-6
@@ -1,13 +1,11 @@
|
||||
// Copyright 2000-2024 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.ProblemsHolder
|
||||
import com.intellij.codeInspection.util.InspectionMessage
|
||||
import com.intellij.codeInspection.util.IntentionFamilyName
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.idea.base.psi.getParentLambdaLabelName
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspection
|
||||
@@ -15,6 +13,7 @@ import org.jetbrains.kotlin.idea.codeinsight.api.applicators.KotlinApplicability
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicators.applicabilityRange
|
||||
import org.jetbrains.kotlin.psi.KtBlockExpression
|
||||
import org.jetbrains.kotlin.psi.KtReturnExpression
|
||||
import org.jetbrains.kotlin.psi.KtVisitorVoid
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
||||
import org.jetbrains.kotlin.psi.returnExpressionVisitor
|
||||
|
||||
@@ -37,10 +36,12 @@ internal class RedundantLabeledReturnOnLastExpressionInLambdaInspection : Abstra
|
||||
return KotlinBundle.message("remove.return.0", labelName)
|
||||
}
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor =
|
||||
returnExpressionVisitor {
|
||||
visitTargetElement(it, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
): KtVisitorVoid = returnExpressionVisitor {
|
||||
visitTargetElement(it, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun isApplicableByPsi(element: KtReturnExpression): Boolean {
|
||||
val labelName = element.getLabelName() ?: return false
|
||||
|
||||
+8
-7
@@ -2,11 +2,9 @@
|
||||
package org.jetbrains.kotlin.idea.codeInsight.inspections.shared
|
||||
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.calls.KtSuccessCallInfo
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
@@ -21,13 +19,16 @@ import org.jetbrains.kotlin.psi.KtVisitorVoid
|
||||
|
||||
internal class RemoveEmptyParenthesesFromLambdaCallInspection : AbstractKotlinApplicableInspection<KtValueArgumentList>(),
|
||||
CleanupLocalInspectionTool {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitValueArgumentList(list: KtValueArgumentList) {
|
||||
visitTargetElement(list, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitValueArgumentList(list: KtValueArgumentList) {
|
||||
visitTargetElement(list, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getProblemDescription(element: KtValueArgumentList): String =
|
||||
KotlinBundle.message("inspection.remove.empty.parentheses.from.lambda.call.display.name")
|
||||
|
||||
|
||||
+9
-7
@@ -1,11 +1,9 @@
|
||||
// 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.k2.codeinsight.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.psi.SmartPsiElementPointer
|
||||
import com.intellij.refactoring.suggested.createSmartPointer
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
@@ -24,13 +22,17 @@ import org.jetbrains.kotlin.psi.KtStringTemplateExpression
|
||||
import org.jetbrains.kotlin.psi.KtVisitorVoid
|
||||
|
||||
internal class ConvertToStringTemplateInspection : AbstractKotlinApplicableInspectionWithContext<KtBinaryExpression, ConvertToStringTemplateInspection.Context>() {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor {
|
||||
return object : KtVisitorVoid() {
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitBinaryExpression(expression: KtBinaryExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
class Context(val replacement: SmartPsiElementPointer<KtStringTemplateExpression>)
|
||||
|
||||
override fun apply(element: KtBinaryExpression, context: Context, project: Project, updater: ModPsiUpdater) {
|
||||
|
||||
+8
-7
@@ -1,12 +1,10 @@
|
||||
// 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.k2.codeinsight.intentions
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemHighlightType
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspectionWithContext
|
||||
@@ -36,12 +34,15 @@ class IntroduceWhenSubjectInspection : AbstractKotlinApplicableInspectionWithCon
|
||||
|
||||
override fun getActionFamilyName(): String = KotlinBundle.message("introduce.when.subject")
|
||||
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor =
|
||||
object : KtVisitorVoid() {
|
||||
override fun visitWhenExpression(expression: KtWhenExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
override fun buildVisitor(
|
||||
holder: ProblemsHolder,
|
||||
isOnTheFly: Boolean,
|
||||
) = object : KtVisitorVoid() {
|
||||
|
||||
override fun visitWhenExpression(expression: KtWhenExpression) {
|
||||
visitTargetElement(expression, holder, isOnTheFly)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getApplicabilityRange(): KotlinApplicabilityRange<KtWhenExpression> = applicabilityTarget { it.whenKeyword }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user