From ead4f77f211c9779f82a5921b9bdb23423a07b89 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 8 Sep 2015 16:15:46 +0300 Subject: [PATCH] Make JetShortNamesCache human readible --- .../kotlin/idea/caches/JetShortNamesCache.kt | 58 ++++++++----------- 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/JetShortNamesCache.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/JetShortNamesCache.kt index d960eac27e5..f8af367ad49 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/JetShortNamesCache.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/JetShortNamesCache.kt @@ -16,23 +16,21 @@ package org.jetbrains.kotlin.idea.caches -import com.intellij.util.containers.HashSet -import com.intellij.psi.PsiMethod -import com.intellij.psi.PsiField +import com.intellij.openapi.project.Project import com.intellij.psi.PsiClass -import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance +import com.intellij.psi.PsiField +import com.intellij.psi.PsiMethod +import com.intellij.psi.search.GlobalSearchScope +import com.intellij.psi.search.PsiShortNamesCache +import com.intellij.util.Processor +import com.intellij.util.containers.HashSet +import org.jetbrains.kotlin.asJava.JavaElementFinder import org.jetbrains.kotlin.idea.stubindex.JetClassShortNameIndex -import org.jetbrains.kotlin.idea.stubindex.PackageIndexUtil import org.jetbrains.kotlin.idea.stubindex.JetFunctionShortNameIndex +import org.jetbrains.kotlin.idea.stubindex.PackageIndexUtil +import java.util.* -// used in Upsource, what's why in idea-analysis module -public class JetShortNamesCache(private val project: com.intellij.openapi.project.Project) : com.intellij.psi.search.PsiShortNamesCache() { - companion object { - public fun getKotlinInstance(project: com.intellij.openapi.project.Project): org.jetbrains.kotlin.idea.caches.JetShortNamesCache - = com.intellij.openapi.extensions.Extensions.getArea(project).getExtensionPoint(com.intellij.psi.search.PsiShortNamesCache.EP_NAME).getExtensions() - .firstIsInstance() - } - +public class JetShortNamesCache(private val project: Project) : PsiShortNamesCache() { /** * Return kotlin class names from project sources which should be visible from java. */ @@ -43,34 +41,28 @@ public class JetShortNamesCache(private val project: com.intellij.openapi.projec val packageClassShortNames = PackageIndexUtil.getAllPossiblePackageClasses(project).keySet() classNames.addAll(packageClassShortNames) - return com.intellij.util.ArrayUtil.toStringArray(classNames) + return classNames.toTypedArray() } /** * Return class names form kotlin sources in given scope which should be visible as Java classes. */ - override fun getClassesByName(org.jetbrains.annotations.NonNls name: String, scope: com.intellij.psi.search.GlobalSearchScope): Array { - val result = java.util.ArrayList() + override fun getClassesByName(name: String, scope: com.intellij.psi.search.GlobalSearchScope): Array { + val result = ArrayList() val packageClasses = PackageIndexUtil.getAllPossiblePackageClasses(project) // package classes can not be indexed, since they have no explicit declarations val fqNames = packageClasses.get(name) - if (!fqNames.isEmpty()) { - for (fqName in fqNames) { - val psiClass = org.jetbrains.kotlin.asJava.JavaElementFinder.getInstance(project).findClass(fqName.asString(), scope) - if (psiClass != null) { - result.add(psiClass) - } + for (fqName in fqNames) { + val psiClass = JavaElementFinder.getInstance(project).findClass(fqName.asString(), scope) + if (psiClass != null) { + result.add(psiClass) } } // Quick check for classes from getAllClassNames() - val classOrObjects = org.jetbrains.kotlin.idea.stubindex.JetClassShortNameIndex.getInstance().get(name, project, scope) - if (classOrObjects.isEmpty()) { - return result.toTypedArray() - } - + val classOrObjects = JetClassShortNameIndex.getInstance().get(name, project, scope) for (classOrObject in classOrObjects) { val fqName = classOrObject.getFqName() if (fqName != null) { @@ -86,19 +78,19 @@ public class JetShortNamesCache(private val project: com.intellij.openapi.projec } override fun getAllClassNames(dest: HashSet) { - dest.addAll(java.util.Arrays.asList(*getAllClassNames())) + dest.addAll(getAllClassNames()) } - override fun getMethodsByName(org.jetbrains.annotations.NonNls name: String, scope: com.intellij.psi.search.GlobalSearchScope): Array + override fun getMethodsByName(name: String, scope: GlobalSearchScope): Array = emptyArray() - override fun getMethodsByNameIfNotMoreThan(org.jetbrains.annotations.NonNls name: String, scope: com.intellij.psi.search.GlobalSearchScope, maxCount: Int): Array + override fun getMethodsByNameIfNotMoreThan(name: String, scope: GlobalSearchScope, maxCount: Int): Array = emptyArray() - override fun getFieldsByNameIfNotMoreThan(org.jetbrains.annotations.NonNls s: String, scope: com.intellij.psi.search.GlobalSearchScope, i: Int): Array + override fun getFieldsByNameIfNotMoreThan(s: String, scope: GlobalSearchScope, i: Int): Array = emptyArray() - override fun processMethodsWithName(org.jetbrains.annotations.NonNls name: String, scope: com.intellij.psi.search.GlobalSearchScope, processor: com.intellij.util.Processor): Boolean + override fun processMethodsWithName(name: String, scope: GlobalSearchScope, processor: Processor): Boolean = com.intellij.util.containers.ContainerUtil.process(getMethodsByName(name, scope), processor) override fun getAllMethodNames(): Array @@ -108,7 +100,7 @@ public class JetShortNamesCache(private val project: com.intellij.openapi.projec set.addAll(JetFunctionShortNameIndex.getInstance().getAllKeys(project)) } - override fun getFieldsByName(org.jetbrains.annotations.NonNls name: String, scope: com.intellij.psi.search.GlobalSearchScope): Array + override fun getFieldsByName(name: String, scope: GlobalSearchScope): Array = emptyArray() override fun getAllFieldNames(): Array