From 2e0ec3b4909816b301ac376747a6ba9f937f5012 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Fri, 26 Jul 2019 12:51:46 +0300 Subject: [PATCH] AbstractFindUsagesTest: add read lock --- .../idea/findUsages/handlers/KotlinFindUsagesHandler.kt | 4 ++-- .../jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/findUsages/handlers/KotlinFindUsagesHandler.kt b/idea/src/org/jetbrains/kotlin/idea/findUsages/handlers/KotlinFindUsagesHandler.kt index 9639197bdc9..9310711b4f6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/findUsages/handlers/KotlinFindUsagesHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/findUsages/handlers/KotlinFindUsagesHandler.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.idea.findUsages.handlers import com.intellij.find.findUsages.FindUsagesHandler import com.intellij.find.findUsages.FindUsagesOptions import com.intellij.openapi.diagnostic.Logger -import com.intellij.openapi.project.DumbService import com.intellij.psi.PsiElement import com.intellij.psi.PsiReference import com.intellij.psi.impl.light.LightMemberReference @@ -32,6 +31,7 @@ import org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesHandlerFactory import org.jetbrains.kotlin.idea.findUsages.KotlinReferencePreservingUsageInfo import org.jetbrains.kotlin.idea.findUsages.KotlinReferenceUsageInfo import org.jetbrains.kotlin.idea.util.application.runReadAction +import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode import java.util.* abstract class KotlinFindUsagesHandler( @@ -76,7 +76,7 @@ abstract class KotlinFindUsagesHandler( private fun searchReferences(element: PsiElement, processor: Processor, options: FindUsagesOptions): Boolean { val searcher = createSearcher(element, processor, options) - if (!DumbService.getInstance(project).runReadActionInSmartMode { searcher.buildTaskList() }) return false + if (!project.runReadActionInSmartMode { searcher.buildTaskList() }) return false return searcher.executeTasks() } diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt b/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt index b0ec819921c..f82bce7778f 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt +++ b/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt @@ -46,6 +46,7 @@ import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor import org.jetbrains.kotlin.idea.test.TestFixtureExtension import org.jetbrains.kotlin.idea.util.ProjectRootsUtil +import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.test.KotlinTestUtils @@ -291,9 +292,10 @@ internal fun findUsages( val processor = CommonProcessors.CollectProcessor() for (psiElement in handler.primaryElements + handler.secondaryElements) { if (highlightingMode) { - //TODO: should findReferencesToHighlight work outside read-action or it makes no sense? - for (reference in handler.findReferencesToHighlight(psiElement, options.searchScope)) { - processor.process(UsageInfo(reference)) + project.runReadActionInSmartMode { + for (reference in handler.findReferencesToHighlight(psiElement, options.searchScope)) { + processor.process(UsageInfo(reference)) + } } } else { ProgressManager.getInstance().run(object : Task(project, "", false) {