AbstractFindUsagesTest: add read lock
This commit is contained in:
@@ -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<T : PsiElement>(
|
||||
@@ -76,7 +76,7 @@ abstract class KotlinFindUsagesHandler<T : PsiElement>(
|
||||
|
||||
private fun searchReferences(element: PsiElement, processor: Processor<UsageInfo>, options: FindUsagesOptions): Boolean {
|
||||
val searcher = createSearcher(element, processor, options)
|
||||
if (!DumbService.getInstance(project).runReadActionInSmartMode<Boolean> { searcher.buildTaskList() }) return false
|
||||
if (!project.runReadActionInSmartMode { searcher.buildTaskList() }) return false
|
||||
return searcher.executeTasks()
|
||||
}
|
||||
|
||||
|
||||
@@ -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<UsageInfo>()
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user