[Analysis API] optimize DeclarationsInPackageProvider.getTopLevelClassifierNamesInPackageProvider
This commit is contained in:
committed by
Space Team
parent
d1da3b8acd
commit
993acad3f3
+5
-3
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.api.fir.scopes
|
package org.jetbrains.kotlin.analysis.api.fir.scopes
|
||||||
|
|
||||||
|
import com.intellij.psi.PsiManager
|
||||||
|
import com.intellij.psi.impl.file.PsiPackageImpl
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.providers.impl.forEachNonKotlinPsiElementFinder
|
import org.jetbrains.kotlin.analysis.providers.impl.forEachNonKotlinPsiElementFinder
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
@@ -21,10 +23,10 @@ internal object DeclarationsInPackageProvider {
|
|||||||
|
|
||||||
when {
|
when {
|
||||||
analysisSession.targetPlatform.isJvm() -> {
|
analysisSession.targetPlatform.isJvm() -> {
|
||||||
|
val psiPackage = PsiPackageImpl(PsiManager.getInstance(analysisSession.project), packageFqName.asString())
|
||||||
forEachNonKotlinPsiElementFinder(analysisSession.project) { finder ->
|
forEachNonKotlinPsiElementFinder(analysisSession.project) { finder ->
|
||||||
finder.findPackage(packageFqName.asString())
|
finder.getClassNames(psiPackage, analysisSession.useSiteAnalysisScope)
|
||||||
?.getClasses(analysisSession.useSiteAnalysisScope)
|
.mapNotNullTo(this, Name::identifier)
|
||||||
?.mapNotNullTo(this) { it.name?.let(Name::identifier) }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user