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