From 92a9ed62a2fa074b1bc96a672e2f950dd2f6eaa6 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 11 Jan 2018 20:12:03 +0300 Subject: [PATCH] 172: [Spring] Revert "`KotlinSpringComponentScanInspection` made to support platform `JamReferenceContributor`" This reverts commit f6a3b2eae4b0c49359bb477b320bc433988bec37. --- ...KotlinSpringComponentScanInspection.kt.172 | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 ultimate/src/org/jetbrains/kotlin/idea/spring/inspections/KotlinSpringComponentScanInspection.kt.172 diff --git a/ultimate/src/org/jetbrains/kotlin/idea/spring/inspections/KotlinSpringComponentScanInspection.kt.172 b/ultimate/src/org/jetbrains/kotlin/idea/spring/inspections/KotlinSpringComponentScanInspection.kt.172 new file mode 100644 index 00000000000..75aa7228848 --- /dev/null +++ b/ultimate/src/org/jetbrains/kotlin/idea/spring/inspections/KotlinSpringComponentScanInspection.kt.172 @@ -0,0 +1,34 @@ +package org.jetbrains.kotlin.idea.spring.inspections + +import com.intellij.codeInspection.ProblemsHolder +import com.intellij.openapi.module.Module +import com.intellij.openapi.module.ModuleUtilCore +import com.intellij.psi.PsiClass +import com.intellij.psi.PsiElementVisitor +import com.intellij.spring.model.highlighting.jam.SpringComponentScanInspection +import org.jetbrains.kotlin.asJava.toLightClass +import org.jetbrains.kotlin.idea.inspections.AbstractKotlinInspection +import org.jetbrains.kotlin.idea.inspections.registerWithElementsUnwrapped +import org.jetbrains.kotlin.psi.KtClassOrObject +import org.jetbrains.kotlin.psi.KtVisitorVoid + +class KotlinSpringComponentScanInspection : AbstractKotlinInspection() { + private val javaInspection by lazy { + object : SpringComponentScanInspection() { + // make base method visible + override public fun checkClass(aClass: PsiClass, holder: ProblemsHolder, module: Module) = super.checkClass(aClass, holder, module) + } + } + + override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { + return object: KtVisitorVoid() { + override fun visitClassOrObject(classOrObject: KtClassOrObject) { + val module = ModuleUtilCore.findModuleForPsiElement(classOrObject) ?: return + val lightClass = classOrObject.toLightClass() ?: return + val tmpHolder = ProblemsHolder(holder.manager, classOrObject.containingFile, isOnTheFly) + javaInspection.checkClass(lightClass, tmpHolder, module) + tmpHolder.resultsArray.registerWithElementsUnwrapped(holder, isOnTheFly) + } + } + } +} \ No newline at end of file