From 527751e96768cf2f3095d3c255754aac0577b59e Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 2 Jun 2015 20:21:19 +0200 Subject: [PATCH] KotlinReferencesSearcher: cleanup after J2K --- .../KotlinReferencesSearcher.kt | 58 ++++++++----------- 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinReferencesSearcher.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinReferencesSearcher.kt index 3166e1ea557..5c7d06cd43b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinReferencesSearcher.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinReferencesSearcher.kt @@ -26,6 +26,7 @@ import com.intellij.util.Processor import org.jetbrains.kotlin.asJava.* import org.jetbrains.kotlin.idea.search.usagesSearch.* import org.jetbrains.kotlin.idea.util.ProjectRootsUtil +import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.* public class KotlinReferencesSearcher : QueryExecutorBase() { @@ -75,45 +76,36 @@ public class KotlinReferencesSearcher : QueryExecutorBase(object : Computable { - override fun compute(): PsiMethod? { - return LightClassUtil.getLightClassMethod(function) - } - }) - searchNamedElement(queryParameters, method) - } - } - else if (element is JetProperty) { - val propertyMethods = ApplicationManager.getApplication().runReadAction(object : Computable { - override fun compute(): LightClassUtil.PropertyAccessorsPsiMethods { - return LightClassUtil.getLightClassPropertyMethods(element) + when (element) { + is JetClassOrObject -> processJetClassOrObject(element, queryParameters) + is JetNamedFunction, is JetSecondaryConstructor -> { + val function = element as JetFunction + val name = function.getName() + if (name != null) { + val method = runReadAction { LightClassUtil.getLightClassMethod(function) } + searchNamedElement(queryParameters, method) } - }) - - searchNamedElement(queryParameters, propertyMethods.getGetter()) - searchNamedElement(queryParameters, propertyMethods.getSetter()) - } - else if (element is KotlinLightMethod) { - val declaration = element.getOrigin() - if (declaration is JetProperty || (declaration is JetParameter && declaration.hasValOrVar())) { - searchNamedElement(queryParameters, declaration as PsiNamedElement) } - else if (declaration is JetPropertyAccessor) { - searchNamedElement(queryParameters, PsiTreeUtil.getParentOfType(declaration, javaClass())) + is JetProperty -> { + val propertyMethods = runReadAction { LightClassUtil.getLightClassPropertyMethods(element) } + searchNamedElement(queryParameters, propertyMethods.getGetter()) + searchNamedElement(queryParameters, propertyMethods.getSetter()) + } + is KotlinLightMethod -> { + val declaration = element.getOrigin() + if (declaration is JetProperty || (declaration is JetParameter && declaration.hasValOrVar())) { + searchNamedElement(queryParameters, declaration as PsiNamedElement) + } + else if (declaration is JetPropertyAccessor) { + searchNamedElement(queryParameters, PsiTreeUtil.getParentOfType(declaration, javaClass())) + } } } } - private fun searchNamedElement(queryParameters: ReferencesSearch.SearchParameters, element: PsiNamedElement, - name: String? = element.getName()) { - if (name != null) { + private fun searchNamedElement(queryParameters: ReferencesSearch.SearchParameters, element: PsiNamedElement?, + name: String? = element?.getName()) { + if (name != null && element != null) { queryParameters.getOptimizer().searchWord(name, queryParameters.getEffectiveSearchScope(), true, element) } }