Do not filter out synthetic extensions (if they will ever exist in future)

This commit is contained in:
Valentin Kipyatkov
2015-10-28 18:34:41 +03:00
parent 9feed9c3ef
commit a26f6da12d
@@ -45,7 +45,6 @@ import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration
import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
import org.jetbrains.kotlin.resolve.BindingContext 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.lazy.BodyResolveMode
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindExclude import org.jetbrains.kotlin.resolve.scopes.DescriptorKindExclude
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
@@ -163,8 +162,13 @@ abstract class CompletionSession(protected val configuration: CompletionSessionC
.map { it.resolveToDescriptor() } .map { it.resolveToDescriptor() }
.toSet() .toSet()
override fun excludes(descriptor: DeclarationDescriptor) override fun excludes(descriptor: DeclarationDescriptor): Boolean {
= descriptor.isExtension && descriptor.containingDeclaration is PackageFragmentDescriptor && descriptor !in extensionsFromThisFile 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 override val fullyExcludedDescriptorKinds: Int
get() = 0 get() = 0