[devkit] IJPL-115541 Companion object in AnAction inheritors is not marked with warning

GitOrigin-RevId: 7f73a01b01ea46de903b40843891ed1cb77b21fb
This commit is contained in:
Yuriy Artamonov
2025-02-23 20:21:00 +00:00
committed by intellij-monorepo-bot
parent 91355ffd71
commit 2639e7a1c2
@@ -5,9 +5,11 @@ import com.intellij.codeInspection.LocalInspectionTool
import com.intellij.codeInspection.ProblemHighlightType
import com.intellij.codeInspection.ProblemsHolder
import com.intellij.psi.PsiElementVisitor
import com.intellij.psi.util.InheritanceUtil
import org.jetbrains.idea.devkit.inspections.DevKitInspectionUtil
import org.jetbrains.idea.devkit.inspections.ExtensionUtil
import org.jetbrains.idea.devkit.kotlin.DevKitKotlinBundle
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.toLightClass
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.KtClass
@@ -28,7 +30,7 @@ internal class CompanionObjectInExtensionInspection : LocalInspectionTool() {
val ktLightClass = companionObject.getStrictParentOfType<KtClass>()?.toLightClass() ?: return
if (!ExtensionUtil.isExtensionPointImplementationCandidate(ktLightClass)) return
if (!ExtensionUtil.isInstantiatedExtension(ktLightClass) { ExtensionUtil.hasServiceBeanFqn(it) }) return
if (!isExtension(ktLightClass) && !isAnAction(ktLightClass)) return
val anchor = companionObject.modifierList?.getModifier(KtTokens.COMPANION_KEYWORD) ?: return
@@ -54,6 +56,14 @@ internal class CompanionObjectInExtensionInspection : LocalInspectionTool() {
}
}
}
private fun isAnAction(ktLightClass: KtLightClass): Boolean {
return InheritanceUtil.isInheritor(ktLightClass, "com.intellij.openapi.actionSystem.AnAction")
}
private fun isExtension(ktLightClass: KtLightClass): Boolean {
return ExtensionUtil.isInstantiatedExtension(ktLightClass) { ExtensionUtil.hasServiceBeanFqn(it) }
}
}
}
}