From 25fff006ef223ea71ffc279a43072cc325ea9a10 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 16 Nov 2018 12:35:11 +0300 Subject: [PATCH] Minor: rearrange and add regions in KotlinShortNamesCache --- .../idea/caches/KotlinShortNamesCache.kt | 71 +++++++++++-------- 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/KotlinShortNamesCache.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/KotlinShortNamesCache.kt index b7c14f8ee35..43b81b1b637 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/KotlinShortNamesCache.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/KotlinShortNamesCache.kt @@ -46,14 +46,7 @@ import org.jetbrains.kotlin.psi.KtNamedDeclaration import org.jetbrains.kotlin.utils.addToStdlib.sequenceOfLazyValues class KotlinShortNamesCache(private val project: Project) : PsiShortNamesCache() { - /** - * Return kotlin class names from project sources which should be visible from java. - */ - override fun getAllClassNames(): Array { - return CancelableArrayCollectProcessor().also { processor -> - processAllClassNames(processor) - }.toArray(arrayOf()) - } + //region Classes override fun processAllClassNames(processor: Processor): Boolean { return KotlinClassShortNameIndex.getInstance().processAllKeys(project, processor) && @@ -61,11 +54,11 @@ class KotlinShortNamesCache(private val project: Project) : PsiShortNamesCache() } /** - * Return class names form kotlin sources in given scope which should be visible as Java classes. + * Return kotlin class names from project sources which should be visible from java. */ - override fun getClassesByName(name: String, scope: GlobalSearchScope): Array { - return CancelableArrayCollectProcessor().also { processor -> - processClassesWithName(name, processor, scope, null) + override fun getAllClassNames(): Array { + return CancelableArrayCollectProcessor().also { processor -> + processAllClassNames(processor) }.toArray(arrayOf()) } @@ -118,6 +111,15 @@ class KotlinShortNamesCache(private val project: Project) : PsiShortNamesCache() } } + /** + * Return class names form kotlin sources in given scope which should be visible as Java classes. + */ + override fun getClassesByName(name: String, scope: GlobalSearchScope): Array { + return CancelableArrayCollectProcessor().also { processor -> + processClassesWithName(name, processor, scope, null) + }.toArray(arrayOf()) + } + private fun kotlinDeclarationsVisibleFromJavaScope(scope: GlobalSearchScope): GlobalSearchScope { val noBuiltInsScope: GlobalSearchScope = object : GlobalSearchScope(project) { override fun isSearchInModuleContent(aModule: Module) = true @@ -127,6 +129,29 @@ class KotlinShortNamesCache(private val project: Project) : PsiShortNamesCache() } return KotlinSourceFilterScope.sourceAndClassFiles(scope, project).intersectWith(noBuiltInsScope) } + //endregion + + //region Methods + + override fun processAllMethodNames(processor: Processor, scope: GlobalSearchScope, filter: IdFilter?): Boolean { + return processAllMethodNames(processor) + } + + override fun getAllMethodNames(): Array { + return CancelableArrayCollectProcessor().also { processor -> + processAllMethodNames(processor) + }.toArray(arrayOf()) + } + + private fun processAllMethodNames(processor: Processor): Boolean { + if (!KotlinFunctionShortNameIndex.getInstance().processAllKeys(project, processor)) { + return false + } + + return KotlinPropertyShortNameIndex.getInstance().processAllKeys(project) { name -> + return@processAllKeys processor.process(JvmAbi.setterName(name)) && processor.process(JvmAbi.getterName(name)) + } + } override fun getMethodsByName(name: String, scope: GlobalSearchScope): Array { return getMethodSequenceByName(name, scope).toList().toTypedArray() @@ -161,26 +186,9 @@ class KotlinShortNamesCache(private val project: Project) : PsiShortNamesCache() override fun processMethodsWithName(name: String, scope: GlobalSearchScope, processor: Processor): Boolean = ContainerUtil.process(getMethodsByName(name, scope), processor) + //endregion - override fun getAllMethodNames(): Array { - return CancelableArrayCollectProcessor().also { processor -> - processAllMethodNames(processor) - }.toArray(arrayOf()) - } - - override fun processAllMethodNames(processor: Processor, scope: GlobalSearchScope, filter: IdFilter?): Boolean { - return processAllMethodNames(processor) - } - - private fun processAllMethodNames(processor: Processor): Boolean { - if (!KotlinFunctionShortNameIndex.getInstance().processAllKeys(project, processor)) { - return false - } - - return KotlinPropertyShortNameIndex.getInstance().processAllKeys(project) { name -> - return@processAllKeys processor.process(JvmAbi.setterName(name)) && processor.process(JvmAbi.getterName(name)) - } - } + //region Fields override fun processAllFieldNames(processor: Processor, scope: GlobalSearchScope, filter: IdFilter?): Boolean { return processAllFieldNames(processor) @@ -237,6 +245,7 @@ class KotlinShortNamesCache(private val project: Project) : PsiShortNamesCache() ) }.toArray(PsiField.EMPTY_ARRAY) } + //endregion private class CancelableArrayCollectProcessor : Processor { val troveSet = ContainerUtil.newTroveSet()