From da7c62e78884b76494cdf8bca1d7ebc86fb6584c Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 2 Oct 2015 19:31:03 +0300 Subject: [PATCH] Refactored --- .../idea/completion/CompletionSession.kt | 2 +- .../kotlin/idea/core/KotlinIndicesHelper.kt | 12 +++++++---- .../kotlin/idea/quickfix/AutoImportFix.kt | 20 ++++++++++--------- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt index 25f8d5ececb..5d10dfa9472 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt @@ -284,7 +284,7 @@ abstract class CompletionSession(protected val configuration: CompletionSessionC } protected fun getTopLevelExtensions(): Collection { - return indicesHelper.getCallableTopLevelExtensions({ prefixMatcher.prefixMatches(it) }, nameExpression!!, bindingContext) + return indicesHelper.getCallableTopLevelExtensions({ prefixMatcher.prefixMatches(it) }, callTypeAndReceiver, expression!!, bindingContext) .filterShadowedNonImported() } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt index 99727c7bd5d..2376b277ff4 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt @@ -31,9 +31,9 @@ import org.jetbrains.kotlin.idea.util.receiverTypes import org.jetbrains.kotlin.idea.util.substituteExtensionIfCallable import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.JetCallableDeclaration +import org.jetbrains.kotlin.psi.JetExpression import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.psi.JetNamedDeclaration -import org.jetbrains.kotlin.psi.JetSimpleNameExpression import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.descriptorUtil.isAnnotatedAsHidden import org.jetbrains.kotlin.resolve.lazy.ResolveSessionUtils @@ -89,9 +89,13 @@ public class KotlinIndicesHelper( .flatMap { findTopLevelCallables(it).filter(descriptorFilter) } } - public fun getCallableTopLevelExtensions(nameFilter: (String) -> Boolean, expression: JetSimpleNameExpression, bindingContext: BindingContext): Collection { - val callTypeAndReceiver = CallTypeAndReceiver.detect(expression) - val receiverTypes = callTypeAndReceiver.receiverTypes(bindingContext, expression, moduleDescriptor, predictableSmartCastsOnly = false) + public fun getCallableTopLevelExtensions( + nameFilter: (String) -> Boolean, + callTypeAndReceiver: CallTypeAndReceiver<*, *>, + position: JetExpression, + bindingContext: BindingContext + ): Collection { + val receiverTypes = callTypeAndReceiver.receiverTypes(bindingContext, position, moduleDescriptor, predictableSmartCastsOnly = false) if (receiverTypes == null || receiverTypes.isEmpty()) return emptyList() val receiverTypeNames = HashSet() diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt index 0e9d83ce0a5..bce0957368b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt @@ -40,7 +40,6 @@ import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper import org.jetbrains.kotlin.idea.core.getResolutionScope import org.jetbrains.kotlin.idea.core.isVisible import org.jetbrains.kotlin.idea.project.ProjectStructureUtil -import org.jetbrains.kotlin.idea.util.CallType import org.jetbrains.kotlin.idea.util.CallTypeAndReceiver import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.psi.JetPsiUtil @@ -121,8 +120,11 @@ public class AutoImportFix(element: JetSimpleNameExpression) : JetHintAction 1) reduceCandidatesBasedOnDependencyRuleViolation(result, file)