Moved logic for PRIVATE_TO_THIS visibility from ExpressionTypingUtils.normalizeReceiverValueForVisibility to ExpressionReceiver.create
This commit is contained in:
@@ -44,7 +44,6 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.types.TypeUtils
|
||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils
|
||||
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
|
||||
import java.util.*
|
||||
|
||||
@@ -136,8 +135,7 @@ public fun Call.resolveCandidates(
|
||||
|
||||
if (filterOutByVisibility) {
|
||||
candidates = candidates.filter {
|
||||
val thisReceiver = ExpressionTypingUtils.normalizeReceiverValueForVisibility(it.dispatchReceiver, bindingContext)
|
||||
Visibilities.isVisible(thisReceiver, it.resultingDescriptor, inDescriptor)
|
||||
Visibilities.isVisible(it.dispatchReceiver, it.resultingDescriptor, inDescriptor)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||
import org.jetbrains.kotlin.resolve.scopes.utils.getImplicitReceiversHierarchy
|
||||
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
|
||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils
|
||||
|
||||
fun DeclarationDescriptorWithVisibility.isVisible(
|
||||
from: DeclarationDescriptor,
|
||||
@@ -47,15 +46,13 @@ fun DeclarationDescriptorWithVisibility.isVisible(
|
||||
val explicitReceiver = type?.let { ExpressionReceiver.create(receiver!!, it, bindingContext) }
|
||||
|
||||
if (explicitReceiver != null) {
|
||||
val normalizeReceiver = ExpressionTypingUtils.normalizeReceiverValueForVisibility(explicitReceiver, bindingContext)
|
||||
return Visibilities.isVisible(normalizeReceiver, this, from)
|
||||
return Visibilities.isVisible(explicitReceiver, this, from)
|
||||
}
|
||||
|
||||
val resolutionScope = element.getResolutionScope(bindingContext, element.getResolutionFacade())
|
||||
val implicitReceivers = resolutionScope.getImplicitReceiversHierarchy()
|
||||
for (implicitReceiver in implicitReceivers) {
|
||||
val normalizeReceiver = ExpressionTypingUtils.normalizeReceiverValueForVisibility(implicitReceiver.getValue(), bindingContext)
|
||||
if (Visibilities.isVisible(normalizeReceiver, this, from)) return true
|
||||
if (Visibilities.isVisible(implicitReceiver.value, this, from)) return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user