From ccb6331e10f11be01e31daaf6473462ebdc28b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolay=C2=A0Mitropolsky?= Date: Thu, 21 Apr 2022 10:52:29 +0000 Subject: [PATCH] LC: better facade detection to fix KTIJ-21223 Merge-request: KT-MR-6130 Merged-by: Nicolay Mitropolsky --- .../src/org/jetbrains/kotlin/asJava/LightClassUtil.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt index 84cc7f22440..66976ed1a52 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt @@ -23,6 +23,7 @@ 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.* import org.jetbrains.kotlin.asJava.finder.JavaElementFinder import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName @@ -177,8 +178,9 @@ object LightClassUtil { val project = ktFile.project val classesWithMatchingFqName = JavaElementFinder.getInstance(project).findClasses(fqName.asString(), GlobalSearchScope.allScope(project)) - return classesWithMatchingFqName.singleOrNull() ?: classesWithMatchingFqName.find { - it.containingFile?.virtualFile == ktFile.virtualFile + return classesWithMatchingFqName.singleOrNull() ?: classesWithMatchingFqName.find { psiClass -> + psiClass is KtLightClassForFacade && psiClass.files.any { it.virtualFile == ktFile.virtualFile } || + psiClass.containingFile?.virtualFile == ktFile.virtualFile } }