From fe17d616b93fa6a0382b15abb6f823d1d606fdbe Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 30 Jun 2017 16:06:51 +0300 Subject: [PATCH] Don't process Java references twice when looking for kotlin overrides (KT-17751) --- .../KotlinOverridingMethodReferenceSearcher.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinOverridingMethodReferenceSearcher.kt b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinOverridingMethodReferenceSearcher.kt index 14582525424..0267841bdbc 100644 --- a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinOverridingMethodReferenceSearcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinOverridingMethodReferenceSearcher.kt @@ -48,16 +48,19 @@ class KotlinOverridingMethodReferenceSearcher : MethodUsagesSearcher() { return } - super.processQuery(p, consumer) + val searchScope = p.project.runReadActionInSmartMode { + p.effectiveSearchScope + .intersectWith(method.useScope) + .restrictToKotlinSources() + } + + if (searchScope === GlobalSearchScope.EMPTY_SCOPE) return + + super.processQuery(MethodReferencesSearch.SearchParameters(method, searchScope, p.isStrictSignatureSearch, p.optimizer), consumer) p.project.runReadActionInSmartMode { val containingClass = method.containingClass ?: return@runReadActionInSmartMode - val searchScope = p.effectiveSearchScope - .intersectWith(method.useScope) - .restrictToKotlinSources() - if (searchScope === GlobalSearchScope.EMPTY_SCOPE) return@runReadActionInSmartMode - val nameCandidates = getPropertyNamesCandidatesByAccessorName(Name.identifier(method.name)) for (name in nameCandidates) { p.optimizer.searchWord(