Refactored utlity for checking isVisible

This commit is contained in:
Valentin Kipyatkov
2015-11-13 21:00:24 +03:00
parent 3d2f878885
commit 2fdd1ade26
4 changed files with 34 additions and 25 deletions
@@ -192,7 +192,7 @@ abstract class CompletionSession(
if (descriptor is TypeParameterDescriptor && !isTypeParameterVisible(descriptor)) return false
if (descriptor is DeclarationDescriptorWithVisibility) {
val visible = descriptor.isVisible(inDescriptor, bindingContext, nameExpression)
val visible = descriptor.isVisible(position, callTypeAndReceiver.receiver as? KtExpression, bindingContext, resolutionFacade)
if (visible) return true
return completeNonAccessible && !descriptor.isFromLibrary()
}
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.idea.completion.fuzzyType
import org.jetbrains.kotlin.idea.core.isVisible
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
import org.jetbrains.kotlin.idea.util.fuzzyReturnType
import org.jetbrains.kotlin.idea.util.getResolutionScope
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.DescriptorUtils
@@ -61,10 +60,8 @@ class StaticMembers(
context: KtSimpleNameExpression,
enumEntriesToSkip: Set<DeclarationDescriptor>) {
val containingDescriptor = context.getResolutionScope(bindingContext, resolutionFacade).ownerDescriptor
fun processMember(descriptor: DeclarationDescriptor) {
if (descriptor is DeclarationDescriptorWithVisibility && !descriptor.isVisible(containingDescriptor, bindingContext, context)) return
if (descriptor is DeclarationDescriptorWithVisibility && !descriptor.isVisible(context, null, bindingContext, resolutionFacade)) return
val matcher: (ExpectedInfo) -> ExpectedInfoMatch
if (descriptor is CallableDescriptor) {