From a83d2b7a67e23bfc02cfa3b9b3296ed2834c84af Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 19 Jan 2024 11:42:54 +0100 Subject: [PATCH] FirJavaElementFinder: return packages with true isValid() #KT-65111 Fixed --- .../org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt | 8 +++++++- compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt index d1986b39c4d..d6b3f384664 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt @@ -79,7 +79,13 @@ class FirJavaElementFinder( override fun findPackage(qualifiedName: String): PsiPackage? { if (firProviders.none { it.symbolProvider.getPackage(FqName(qualifiedName)) != null }) return null - return PsiPackageImpl(psiManager, qualifiedName) + return FirPsiPackage(psiManager, qualifiedName) + } + + private class FirPsiPackage(psiManager: PsiManager, qualifiedName: String) : PsiPackageImpl(psiManager, qualifiedName) { + // Note: for standard PsiPackageImpl, PsiPackageImplementationHelper.getInstance().packagePrefixExists returns false here + // See KT-65111 + override fun isValid(): Boolean = true } override fun getClasses(psiPackage: PsiPackage, scope: GlobalSearchScope): Array { diff --git a/compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt b/compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt index e97fe515cea..248f8dfff12 100644 --- a/compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt +++ b/compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt @@ -1,5 +1,4 @@ // TARGET_BACKEND: JVM_IR -// IGNORE_BACKEND_K2: JVM_IR // ISSUE: KT-65111 // FILE: plugin/Plugin.java