From a26f6da12d6f2c0e4d883d7a2fe8fa6d65245461 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Wed, 28 Oct 2015 18:34:41 +0300 Subject: [PATCH] Do not filter out synthetic extensions (if they will ever exist in future) --- .../kotlin/idea/completion/CompletionSession.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 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 8a789eb8f51..67897834e88 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 @@ -45,7 +45,6 @@ import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf import org.jetbrains.kotlin.resolve.BindingContext -import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.scopes.DescriptorKindExclude import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter @@ -163,8 +162,13 @@ abstract class CompletionSession(protected val configuration: CompletionSessionC .map { it.resolveToDescriptor() } .toSet() - override fun excludes(descriptor: DeclarationDescriptor) - = descriptor.isExtension && descriptor.containingDeclaration is PackageFragmentDescriptor && descriptor !in extensionsFromThisFile + override fun excludes(descriptor: DeclarationDescriptor): Boolean { + return descriptor is CallableMemberDescriptor + && descriptor.extensionReceiverParameter != null + && descriptor.containingDeclaration is PackageFragmentDescriptor + && descriptor !in extensionsFromThisFile + && descriptor.kind == CallableMemberDescriptor.Kind.DECLARATION /* do not filter out synthetic extensions from packages */ + } override val fullyExcludedDescriptorKinds: Int get() = 0