diff --git a/idea/src/org/jetbrains/jet/plugin/search/KotlinDefinitionsSearcher.java b/idea/src/org/jetbrains/jet/plugin/search/KotlinDefinitionsSearcher.java index ecbd25dd5e1..6b3d2837d87 100644 --- a/idea/src/org/jetbrains/jet/plugin/search/KotlinDefinitionsSearcher.java +++ b/idea/src/org/jetbrains/jet/plugin/search/KotlinDefinitionsSearcher.java @@ -33,30 +33,38 @@ import org.jetbrains.jet.lang.psi.JetNamedFunction; public class KotlinDefinitionsSearcher extends QueryExecutorBase { @Override - public void processQuery(@NotNull final PsiElement queryParameters, @NotNull Processor consumer) { + public void processQuery(@NotNull PsiElement queryParameters, @NotNull Processor consumer) { if (queryParameters instanceof JetClass) { - PsiClass psiClass = ApplicationManager.getApplication().runReadAction(new Computable() { - @Override - public PsiClass compute() { - return LightClassUtil.getPsiClass((JetClass) queryParameters); - } - }); - if (psiClass != null) { - ContainerUtil.process(ClassInheritorsSearch.search(psiClass, true), consumer); - } + processClassImplementations((JetClass) queryParameters, consumer); } if (queryParameters instanceof JetNamedFunction) { - PsiMethod psiMethod = ApplicationManager.getApplication().runReadAction(new Computable() { - @Override - public PsiMethod compute() { - return LightClassUtil.getLightClassMethod((JetNamedFunction) queryParameters); - } - }); + processFunctionImplementations((JetNamedFunction) queryParameters, consumer); + } + } - if (psiMethod != null) { - ContainerUtil.process(MethodImplementationsSearch.getMethodImplementations(psiMethod), consumer); + private static void processClassImplementations(final JetClass queryParameters, Processor consumer) { + PsiClass psiClass = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public PsiClass compute() { + return LightClassUtil.getPsiClass(queryParameters); } + }); + if (psiClass != null) { + ContainerUtil.process(ClassInheritorsSearch.search(psiClass, true), consumer); + } + } + + private static void processFunctionImplementations(final JetNamedFunction queryParameters, Processor consumer) { + PsiMethod psiMethod = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public PsiMethod compute() { + return LightClassUtil.getLightClassMethod(queryParameters); + } + }); + + if (psiMethod != null) { + ContainerUtil.process(MethodImplementationsSearch.getMethodImplementations(psiMethod), consumer); } } }