From 4a6609e491f0bfe9bc32759bfe523c4c5e5d962a Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Mon, 22 Aug 2022 13:36:43 +0200 Subject: [PATCH] [lc] LightClassUtil: simplify facade class search ^KT-53543 --- .../jetbrains/kotlin/asJava/LightClassUtil.kt | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt index 424196d09fa..a2a3e155a37 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt @@ -10,18 +10,14 @@ import com.intellij.psi.PsiField import com.intellij.psi.PsiMethod import com.intellij.psi.PsiNamedElement import com.intellij.psi.impl.java.stubs.PsiClassStub -import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.stubs.PsiFileStub import com.intellij.psi.stubs.StubElement import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.kotlin.asJava.classes.KtLightClass -import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.asJava.elements.KtLightField import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.asJava.elements.isSetter -import org.jetbrains.kotlin.asJava.finder.JavaElementFinder -import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType @@ -155,7 +151,7 @@ object LightClassUtil { if (parent is KtFile) { // top-level declaration - return findFileFacade(parent) + return parent.findFacadeClass() } else if (parent is KtClassBody) { checkWithAttachment(parent.parent is KtClassOrObject, { "Bad parent: ${parent.parent?.javaClass}" @@ -168,17 +164,6 @@ object LightClassUtil { return null } - private fun findFileFacade(ktFile: KtFile): PsiClass? { - val fqName = ktFile.javaFileFacadeFqName - val project = ktFile.project - val classesWithMatchingFqName = - JavaElementFinder.getInstance(project).findClasses(fqName.asString(), GlobalSearchScope.allScope(project)) - return classesWithMatchingFqName.singleOrNull() ?: classesWithMatchingFqName.find { psiClass -> - psiClass is KtLightClassForFacade && psiClass.files.any { it.virtualFile == ktFile.virtualFile } || - psiClass.containingFile?.virtualFile == ktFile.virtualFile - } - } - private fun getWrappingClasses(declaration: KtDeclaration): Sequence { val wrapperClass = getWrappingClass(declaration) ?: return emptySequence() val wrapperClassOrigin = (wrapperClass as KtLightClass).kotlinOrigin