AA: cache PackagePartProvider per scope

This commit is contained in:
Jinseong Jeon
2022-09-12 14:27:38 -07:00
committed by Ilya Kirillov
parent 2580a5c233
commit e5b75dcd72
5 changed files with 29 additions and 20 deletions
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtu
import org.jetbrains.kotlin.analysis.project.structure.KtBinaryModule
import org.jetbrains.kotlin.analysis.providers.KotlinPsiDeclarationProvider
import org.jetbrains.kotlin.analysis.providers.KotlinPsiDeclarationProviderFactory
import org.jetbrains.kotlin.analysis.providers.createPackagePartProvider
import org.jetbrains.kotlin.asJava.builder.ClsWrapperStubPsiFactory
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
import org.jetbrains.kotlin.name.CallableId
@@ -111,7 +112,6 @@ private class KotlinStaticPsiDeclarationFromBinaryModuleProvider(
// We need a session or facade that maintains such information
class KotlinStaticPsiDeclarationProviderFactory(
private val project: Project,
private val createPackagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
private val binaryModules: Collection<KtBinaryModule>,
private val jarFileSystem: CoreJarFileSystem,
) : KotlinPsiDeclarationProviderFactory() {
@@ -119,7 +119,7 @@ class KotlinStaticPsiDeclarationProviderFactory(
return KotlinStaticPsiDeclarationFromBinaryModuleProvider(
project,
searchScope,
createPackagePartProvider.invoke(searchScope),
project.createPackagePartProvider(searchScope),
binaryModules,
jarFileSystem,
)