Quick search of compareTo operator usages

This commit is contained in:
Valentin Kipyatkov
2016-09-24 21:29:38 +03:00
parent ee64a1a2b7
commit f2e5662154
3 changed files with 15 additions and 4 deletions
@@ -177,6 +177,9 @@ abstract class OperatorReferenceSearcher<TReferenceElement : KtElement>(
name == OperatorNameConventions.EQUALS ->
return BinaryOperatorReferenceSearcher(declaration, listOf(KtTokens.EQEQ, KtTokens.EXCLEQ), searchScope, consumer, optimizer, options)
name == OperatorNameConventions.COMPARE_TO ->
return BinaryOperatorReferenceSearcher(declaration, listOf(KtTokens.LT, KtTokens.GT, KtTokens.LTEQ, KtTokens.GTEQ), searchScope, consumer, optimizer, options)
else ->
return null
}
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.idea.search.usagesSearch
import com.google.common.collect.ImmutableSet
import org.jetbrains.kotlin.idea.references.KtForLoopInReference
import org.jetbrains.kotlin.idea.references.KtPropertyDelegationMethodsReference
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
import org.jetbrains.kotlin.lexer.KtToken
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.Name
@@ -43,11 +42,8 @@ val DELEGATE_ACCESSOR_NAMES = setOf(Name.identifier("getValue"), Name.identifier
val IN_OPERATIONS_TO_SEARCH = setOf(KtTokens.IN_KEYWORD)
val COMPARISON_OPERATIONS_TO_SEARCH = setOf(KtTokens.LT, KtTokens.GT)
fun Name.getOperationSymbolsToSearch(): Pair<Set<KtToken>, Class<*>>? {
when (this) {
OperatorNameConventions.COMPARE_TO -> return COMPARISON_OPERATIONS_TO_SEARCH to KtSimpleNameReference::class.java
OperatorNameConventions.ITERATOR -> return IN_OPERATIONS_TO_SEARCH to KtForLoopInReference::class.java
in DELEGATE_ACCESSOR_NAMES -> return setOf(KtTokens.BY_KEYWORD) to KtPropertyDelegationMethodsReference::class.java
DelegatedPropertyResolver.PROPERTY_DELEGATED_FUNCTION_NAME -> return setOf(KtTokens.BY_KEYWORD) to KtPropertyDelegationMethodsReference::class.java
@@ -0,0 +1,12 @@
Resolved A(0) < 1
Resolved A(0) < A(1)
Resolved A(0) <= 1
Resolved A(0) <= A(1)
Resolved A(0) > 1
Resolved A(0) > A(1)
Resolved A(0) >= 1
Resolved A(0) >= A(1)
Searched references to A
Searched references to parameter other of A.compareTo(other: A) in non-Java files
Used plain search of A.compareTo(other: A) in LocalSearchScope:
CLASS:A