From 32a436e8934d718695a796daea1c35f8f4b1dddf Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 16 Sep 2016 19:40:39 +0300 Subject: [PATCH] Refactoring --- .../usagesSearch/OperatorReferenceSearcher.kt | 50 ++++++++----------- 1 file changed, 21 insertions(+), 29 deletions(-) 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 ecce9f68411..6eb3701b6ad 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 @@ -141,40 +141,32 @@ abstract class OperatorReferenceSearcher( if (!options.searchForOperatorConventions) return null - if (name == OperatorNameConventions.INVOKE) { - return InvokeOperatorReferenceSearcher(declaration, searchScope, consumer, optimizer) - } - val binaryOp = OperatorConventions.BINARY_OPERATION_NAMES.inverse()[name] - if (binaryOp != null) { - val assignmentOp = OperatorConventions.ASSIGNMENT_OPERATION_COUNTERPARTS.inverse()[binaryOp] - val operationTokens = listOf(binaryOp, assignmentOp).filterNotNull() - return BinaryOperatorReferenceSearcher(declaration, operationTokens, searchScope, consumer, optimizer) - } - val assignmentOp = OperatorConventions.ASSIGNMENT_OPERATIONS.inverse()[name] - if (assignmentOp != null) { - return BinaryOperatorReferenceSearcher(declaration, listOf(assignmentOp), searchScope, consumer, optimizer) - } - val unaryOp = OperatorConventions.UNARY_OPERATION_NAMES.inverse()[name] - if (unaryOp != null) { - return UnaryOperatorReferenceSearcher(declaration, unaryOp, searchScope, consumer, optimizer) + + when { + binaryOp != null -> { + val counterpartAssignmentOp = OperatorConventions.ASSIGNMENT_OPERATION_COUNTERPARTS.inverse()[binaryOp] + val operationTokens = listOf(binaryOp, counterpartAssignmentOp).filterNotNull() + return BinaryOperatorReferenceSearcher(declaration, operationTokens, searchScope, consumer, optimizer) + } + + assignmentOp != null -> return BinaryOperatorReferenceSearcher(declaration, listOf(assignmentOp), searchScope, consumer, optimizer) + + unaryOp != null -> return UnaryOperatorReferenceSearcher(declaration, unaryOp, searchScope, consumer, optimizer) + + name == OperatorNameConventions.INVOKE -> return InvokeOperatorReferenceSearcher(declaration, searchScope, consumer, optimizer) + + name == OperatorNameConventions.GET -> return IndexingOperatorReferenceSearcher(declaration, searchScope, consumer, optimizer, isSet = false) + + name == OperatorNameConventions.SET -> return IndexingOperatorReferenceSearcher(declaration, searchScope, consumer, optimizer, isSet = true) + + name == OperatorNameConventions.CONTAINS -> return ContainsOperatorReferenceSearcher(declaration, searchScope, consumer, optimizer) + + else -> return null } - if (name == OperatorNameConventions.GET) { - return IndexingOperatorReferenceSearcher(declaration, searchScope, consumer, optimizer, isSet = false) - } - - if (name == OperatorNameConventions.SET) { - return IndexingOperatorReferenceSearcher(declaration, searchScope, consumer, optimizer, isSet = true) - } - - if (name == OperatorNameConventions.CONTAINS) { - return ContainsOperatorReferenceSearcher(declaration, searchScope, consumer, optimizer) - } - - return null } //TODO: check no light elements here