diff --git a/idea/src/org/jetbrains/kotlin/idea/findUsages/handlers/KotlinFindMemberUsagesHandler.kt b/idea/src/org/jetbrains/kotlin/idea/findUsages/handlers/KotlinFindMemberUsagesHandler.kt index a9efd06d85f..6d4acebed66 100644 --- a/idea/src/org/jetbrains/kotlin/idea/findUsages/handlers/KotlinFindMemberUsagesHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/findUsages/handlers/KotlinFindMemberUsagesHandler.kt @@ -45,6 +45,7 @@ import org.jetbrains.kotlin.idea.search.excludeKotlinSources import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReadWriteAccessDetector import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchParameters +import org.jetbrains.kotlin.idea.search.isOnlyKotlinSearch import org.jetbrains.kotlin.idea.search.usagesSearch.dataClassComponentFunction import org.jetbrains.kotlin.idea.search.usagesSearch.isImportUsage import org.jetbrains.kotlin.idea.util.application.runReadAction @@ -146,16 +147,18 @@ abstract class KotlinFindMemberUsagesHandler addTask { query.forEach(referenceProcessor) } } - // TODO: very bad code!! ReferencesSearch does not work correctly for constructors and annotation parameters - val psiMethodScopeSearch = when { - element is KtNamedFunction || element is KtParameter && element.dataClassComponentFunction() != null -> - options.searchScope.excludeKotlinSources() - else -> options.searchScope - } + if (element is KtElement && !isOnlyKotlinSearch(options.searchScope)) { + // TODO: very bad code!! ReferencesSearch does not work correctly for constructors and annotation parameters + val psiMethodScopeSearch = when { + element is KtNamedFunction || element is KtParameter && element.dataClassComponentFunction() != null -> + options.searchScope.excludeKotlinSources() + else -> options.searchScope + } - for (psiMethod in element.toLightMethods()) { - applyQueryFilters(element, options, MethodReferencesSearch.search(psiMethod, psiMethodScopeSearch, true)).let { query -> - addTask { query.forEach(referenceProcessor) } + for (psiMethod in element.toLightMethods()) { + applyQueryFilters(element, options, MethodReferencesSearch.search(psiMethod, psiMethodScopeSearch, true)).let { query -> + addTask { query.forEach(referenceProcessor) } + } } } }