From d93e0adc4f91627b136922272f984bcd93136a0e Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Sun, 16 Jul 2017 16:38:46 +0300 Subject: [PATCH] Do not wrap to light elements if Kotlin search is requested (KT-19054) #KT-19054 Fixed --- .../KotlinReferencesSearcher.kt | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 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 e7e5f83b832..1b14c2afe46 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 @@ -23,7 +23,10 @@ import com.intellij.psi.search.* import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.util.Processor import org.jetbrains.kotlin.asJava.LightClassUtil -import org.jetbrains.kotlin.asJava.elements.* +import org.jetbrains.kotlin.asJava.elements.KtLightField +import org.jetbrains.kotlin.asJava.elements.KtLightMember +import org.jetbrains.kotlin.asJava.elements.KtLightMethod +import org.jetbrains.kotlin.asJava.elements.KtLightParameter import org.jetbrains.kotlin.asJava.namedUnwrappedElement import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.asJava.toLightElements @@ -33,9 +36,9 @@ import org.jetbrains.kotlin.idea.search.KOTLIN_NAMED_ARGUMENT_SEARCH_CONTEXT import org.jetbrains.kotlin.idea.search.allScope import org.jetbrains.kotlin.idea.search.effectiveSearchScope import org.jetbrains.kotlin.idea.search.unionSafe -import org.jetbrains.kotlin.idea.search.usagesSearch.operators.OperatorReferenceSearcher import org.jetbrains.kotlin.idea.search.usagesSearch.dataClassComponentFunction import org.jetbrains.kotlin.idea.search.usagesSearch.getClassNameForCompanionObject +import org.jetbrains.kotlin.idea.search.usagesSearch.operators.OperatorReferenceSearcher import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.* @@ -89,9 +92,17 @@ class KotlinReferencesSearcher : QueryExecutorBase - scope.unionSafe(queryParameters.effectiveSearchScope(e)) + val effectiveSearchScope = run { + val elements = if (unwrappedElement is KtDeclaration && !isOnlyKotlinSearch(queryParameters.scopeDeterminedByUser)) { + unwrappedElement.toLightElements() + } + else { + listOf(unwrappedElement) + } + + elements.fold(queryParameters.effectiveSearchScope) { scope, e -> + scope.unionSafe(queryParameters.effectiveSearchScope(e)) + } } val refFilter: (PsiReference) -> Boolean = when { @@ -130,7 +141,6 @@ class KotlinReferencesSearcher : QueryExecutorBase