From 993acad3f3afb93e2b068ffe034d4a7e42906e1f Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 15 May 2023 21:37:26 +0200 Subject: [PATCH] [Analysis API] optimize DeclarationsInPackageProvider.getTopLevelClassifierNamesInPackageProvider --- .../api/fir/scopes/DeclarationsInPackageProvider.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/DeclarationsInPackageProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/DeclarationsInPackageProvider.kt index f9bb58efa8d..9d40d32f699 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/DeclarationsInPackageProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/DeclarationsInPackageProvider.kt @@ -5,6 +5,8 @@ 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.providers.impl.forEachNonKotlinPsiElementFinder import org.jetbrains.kotlin.fir.FirSession @@ -21,10 +23,10 @@ internal object DeclarationsInPackageProvider { when { analysisSession.targetPlatform.isJvm() -> { + val psiPackage = PsiPackageImpl(PsiManager.getInstance(analysisSession.project), packageFqName.asString()) forEachNonKotlinPsiElementFinder(analysisSession.project) { finder -> - finder.findPackage(packageFqName.asString()) - ?.getClasses(analysisSession.useSiteAnalysisScope) - ?.mapNotNullTo(this) { it.name?.let(Name::identifier) } + finder.getClassNames(psiPackage, analysisSession.useSiteAnalysisScope) + .mapNotNullTo(this, Name::identifier) } } }