Don't build light classes when usages in Kotlin local scope requested
This commit is contained in:
+12
-9
@@ -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<T : KtNamedDeclaration>
|
||||
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) }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user