This commit is contained in:
Valentin Kipyatkov
2016-09-16 19:22:45 +03:00
parent c9bb3607ac
commit ccc5d74649
8 changed files with 15 additions and 15 deletions
@@ -35,7 +35,7 @@ class BinaryOperatorReferenceSearcher(
optimizer: SearchRequestCollector
) : OperatorReferenceSearcher<KtBinaryExpression>(targetFunction, searchScope, consumer, optimizer, wordsToSearch = operationTokens.map { it.value }) {
override fun processSuspiciousExpression(expression: KtExpression) {
override fun processPossibleReceiverExpression(expression: KtExpression) {
val binaryExpression = expression.parent as? KtBinaryExpression ?: return
if (binaryExpression.operationToken !in operationTokens) return
if (expression != binaryExpression.left) return
@@ -38,7 +38,7 @@ class ContainsOperatorReferenceSearcher(
private val OPERATION_TOKENS = setOf(KtTokens.IN_KEYWORD, KtTokens.NOT_IN)
override fun processSuspiciousExpression(expression: KtExpression) {
override fun processPossibleReceiverExpression(expression: KtExpression) {
val parent = expression.parent
when (parent) {
is KtBinaryExpression -> {
@@ -53,7 +53,7 @@ class DestructuringDeclarationReferenceSearcher(
override fun isReferenceToCheck(ref: PsiReference) = ref is KtDestructuringDeclarationReference
override fun processSuspiciousExpression(expression: KtExpression) {
override fun processPossibleReceiverExpression(expression: KtExpression) {
val parent = expression.parent
val destructuringDeclaration = when (parent) {
is KtDestructuringDeclaration -> parent
@@ -69,8 +69,8 @@ class ExpressionsOfTypeProcessor(
private val typeToSearch: FuzzyType,
private val searchScope: SearchScope,
private val project: Project,
private val suspiciousExpressionHandler: (KtExpression) -> Unit,
private val suspiciousScopeHandler: (SearchScope) -> Unit
private val possibleMatchHandler: (KtExpression) -> Unit,
private val possibleMatchesInScopeHandler: (SearchScope) -> Unit
) {
@TestOnly
enum class Mode {
@@ -132,7 +132,7 @@ class ExpressionsOfTypeProcessor(
// for class from library always use plain search because we cannot search usages in compiled code (we could though)
if (!runReadAction { psiClass.isValid && ProjectRootsUtil.isInProjectSource (psiClass) }) {
suspiciousScopeHandler(searchScope)
possibleMatchesInScopeHandler(searchScope)
return
}
@@ -146,7 +146,7 @@ class ExpressionsOfTypeProcessor(
.filter { it.isValid }
.toTypedArray()
if (scopeElements.isNotEmpty()) {
suspiciousScopeHandler(LocalSearchScope(scopeElements))
possibleMatchesInScopeHandler(LocalSearchScope(scopeElements))
}
}
}
@@ -179,7 +179,7 @@ class ExpressionsOfTypeProcessor(
private fun downShiftToPlainSearch() {
tasks.clear()
scopesToUsePlainSearch.clear()
suspiciousScopeHandler(searchScope)
possibleMatchesInScopeHandler(searchScope)
}
private fun addClassToProcess(classToSearch: PsiClass) {
@@ -531,7 +531,7 @@ class ExpressionsOfTypeProcessor(
inScope = inScope && element in searchScope
}
if (inScope) {
suspiciousExpressionHandler(element)
possibleMatchHandler(element)
}
val parent = element.parent
@@ -36,7 +36,7 @@ class IndexingOperatorReferenceSearcher(
private val isSet: Boolean
) : OperatorReferenceSearcher<KtArrayAccessExpression>(targetFunction, searchScope, consumer, optimizer, wordsToSearch = listOf("[")) {
override fun processSuspiciousExpression(expression: KtExpression) {
override fun processPossibleReceiverExpression(expression: KtExpression) {
val accessExpression = expression.parent as? KtArrayAccessExpression ?: return
if (expression != accessExpression.arrayExpression) return
if (!checkAccessExpression(accessExpression)) return
@@ -33,7 +33,7 @@ class InvokeOperatorReferenceSearcher(
optimizer: SearchRequestCollector
) : OperatorReferenceSearcher<KtCallExpression>(targetFunction, searchScope, consumer, optimizer, wordsToSearch = emptyList()) {
override fun processSuspiciousExpression(expression: KtExpression) {
override fun processPossibleReceiverExpression(expression: KtExpression) {
val callExpression = expression.parent as? KtCallExpression ?: return
processReferenceElement(callExpression)
}
@@ -57,7 +57,7 @@ abstract class OperatorReferenceSearcher<TReferenceElement : KtElement>(
) {
private val project = targetDeclaration.project
protected abstract fun processSuspiciousExpression(expression: KtExpression)
protected abstract fun processPossibleReceiverExpression(expression: KtExpression)
protected abstract fun extractReference(element: PsiElement): PsiReference?
@@ -203,8 +203,8 @@ abstract class OperatorReferenceSearcher<TReferenceElement : KtElement>(
receiverType,
searchScope,
project,
suspiciousExpressionHandler = { expression -> processSuspiciousExpression(expression) },
suspiciousScopeHandler = { searchScope -> doPlainSearch(searchScope) }
possibleMatchHandler = { expression -> processPossibleReceiverExpression(expression) },
possibleMatchesInScopeHandler = { searchScope -> doPlainSearch(searchScope) }
).run()
}
finally {
@@ -36,7 +36,7 @@ class UnaryOperatorReferenceSearcher(
optimizer: SearchRequestCollector
) : OperatorReferenceSearcher<KtUnaryExpression>(targetFunction, searchScope, consumer, optimizer, wordsToSearch = listOf(operationToken.value)) {
override fun processSuspiciousExpression(expression: KtExpression) {
override fun processPossibleReceiverExpression(expression: KtExpression) {
val unaryExpression = expression.parent as? KtUnaryExpression ?: return
if (unaryExpression.operationToken != operationToken) return
processReferenceElement(unaryExpression)