diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/inheritance/ImplicitSubclassInspection.kt b/java/java-analysis-impl/src/com/intellij/codeInspection/inheritance/ImplicitSubclassInspection.kt index c91be1359c9e..42425924f3ff 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/inheritance/ImplicitSubclassInspection.kt +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/inheritance/ImplicitSubclassInspection.kt @@ -33,10 +33,11 @@ import com.intellij.util.IncorrectOperationException import com.intellij.util.SmartList import org.jetbrains.uast.UClass import org.jetbrains.uast.UDeclaration +import org.jetbrains.uast.toUElementOfType -class ImplicitSubclassInspection : AbstractBaseUastLocalInspectionTool() { +class ImplicitSubclassInspection : LocalInspectionTool() { - override fun checkClass(aClass: UClass, manager: InspectionManager, isOnTheFly: Boolean): Array? { + private fun checkClass(aClass: UClass, manager: InspectionManager, isOnTheFly: Boolean): Array? { val classIsFinal = aClass.isFinal || aClass.hasModifierProperty(PsiModifier.PRIVATE) @@ -213,4 +214,15 @@ class ImplicitSubclassInspection : AbstractBaseUastLocalInspectionTool() { } + override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor = object : PsiElementVisitor() { + override fun visitElement(element: PsiElement) { + super.visitElement(element) + val uClass = element.toUElementOfType() ?: return + val problems = checkClass(uClass, holder.manager, isOnTheFly) ?: return + for (problem in problems) { + holder.registerProblem(problem) + } + } + } + } \ No newline at end of file