From cb7d561c6cef51958595907114be14de36c7f730 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 10 Oct 2017 11:24:05 +0300 Subject: [PATCH] Add cache for declaration names in StubBasedPackageMemberDeclarationProvider #KT-20683 Fixed --- .../resolve/StubBasedPackageMemberDeclarationProvider.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/resolve/StubBasedPackageMemberDeclarationProvider.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/resolve/StubBasedPackageMemberDeclarationProvider.kt index e4eef941c4d..dbc79cb212f 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/resolve/StubBasedPackageMemberDeclarationProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/resolve/StubBasedPackageMemberDeclarationProvider.kt @@ -61,9 +61,12 @@ class StubBasedPackageMemberDeclarationProvider( return result } - override fun getDeclarationNames() = - getDeclarations(DescriptorKindFilter.ALL, { true }) - .mapTo(mutableSetOf()) { ResolveSessionUtils.safeNameForLazyResolve(it as KtNamedDeclaration) } + private val declarationNames_ by lazy(LazyThreadSafetyMode.PUBLICATION) { + getDeclarations(DescriptorKindFilter.ALL, { true }) + .mapTo(mutableSetOf()) { ResolveSessionUtils.safeNameForLazyResolve(it as KtNamedDeclaration) } + } + + override fun getDeclarationNames() = declarationNames_ override fun getClassOrObjectDeclarations(name: Name): Collection { val result = ArrayList()