From f2e56621541e5fbec3e2597aeec9716180418425 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Sat, 24 Sep 2016 21:29:38 +0300 Subject: [PATCH] Quick search of compareTo operator usages --- .../search/usagesSearch/OperatorReferenceSearcher.kt | 3 +++ .../kotlin/idea/search/usagesSearch/conventions.kt | 4 ---- .../findUsages/kotlin/conventions/compareTo.log | 12 ++++++++++++ 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 idea/testData/findUsages/kotlin/conventions/compareTo.log diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/OperatorReferenceSearcher.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/OperatorReferenceSearcher.kt index 27913fc63ef..cad69d63cd4 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/OperatorReferenceSearcher.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/OperatorReferenceSearcher.kt @@ -177,6 +177,9 @@ abstract class OperatorReferenceSearcher( 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 } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/conventions.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/conventions.kt index 42c8c4a65ce..639e4f41daa 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/conventions.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/conventions.kt @@ -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, 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 diff --git a/idea/testData/findUsages/kotlin/conventions/compareTo.log b/idea/testData/findUsages/kotlin/conventions/compareTo.log new file mode 100644 index 00000000000..a53f9cd0299 --- /dev/null +++ b/idea/testData/findUsages/kotlin/conventions/compareTo.log @@ -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