[resolution] KotlinJavaPsiFacade: do not return classes with wrong ClassId
We shouldn't return from `findClass`/`findClasses` Java classes with `ClassId` different from the requested one ^KT-62892
This commit is contained in:
committed by
Space Team
parent
c6004874c1
commit
37ccf5d4f3
+2
-5
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.load.java.JavaClassFinder
|
||||
import org.jetbrains.kotlin.load.java.createJavaClassFinder
|
||||
import org.jetbrains.kotlin.load.java.structure.classId
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaClass
|
||||
import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -60,10 +60,7 @@ internal class LLFirCombinedJavaSymbolProvider private constructor(
|
||||
classCache.get(classId) { computeClassLikeSymbolByClassId(it) }
|
||||
|
||||
private fun computeClassLikeSymbolByClassId(classId: ClassId): FirRegularClassSymbol? {
|
||||
val javaClasses = javaClassFinder.findClasses(classId).filterNot { javaClass ->
|
||||
javaClass.classId != classId || javaClass.hasMetadataAnnotation()
|
||||
}
|
||||
|
||||
val javaClasses = javaClassFinder.findClasses(classId).filterNot(JavaClass::hasMetadataAnnotation)
|
||||
if (javaClasses.isEmpty()) return null
|
||||
|
||||
val (javaClass, provider) = selectFirstElementInClasspathOrder(javaClasses) { javaClass ->
|
||||
|
||||
Reference in New Issue
Block a user