Make DescriptorVisibility delegate to Visibility
This commit is contained in:
+17
-12
@@ -32,29 +32,34 @@ fun FunctionDescriptor.hasJavaOriginInHierarchy(): Boolean {
|
||||
original.overriddenDescriptors.any { it.hasJavaOriginInHierarchy() }
|
||||
}
|
||||
|
||||
fun DescriptorVisibility.isVisibleOutside() = this != DescriptorVisibilities.PRIVATE && this != DescriptorVisibilities.PRIVATE_TO_THIS && this != DescriptorVisibilities.INVISIBLE_FAKE
|
||||
fun DescriptorVisibility.isVisibleOutside() =
|
||||
this != DescriptorVisibilities.PRIVATE && this != DescriptorVisibilities.PRIVATE_TO_THIS && this != DescriptorVisibilities.INVISIBLE_FAKE
|
||||
|
||||
fun syntheticVisibility(originalDescriptor: DeclarationDescriptorWithVisibility, isUsedForExtension: Boolean): DescriptorVisibility {
|
||||
val originalVisibility = originalDescriptor.visibility
|
||||
return when (originalVisibility) {
|
||||
return when (val originalVisibility = originalDescriptor.visibility) {
|
||||
DescriptorVisibilities.PUBLIC -> DescriptorVisibilities.PUBLIC
|
||||
|
||||
else -> object : DescriptorVisibility(originalVisibility.name, originalVisibility.isPublicAPI) {
|
||||
else -> object : DescriptorVisibility() {
|
||||
override val delegate: Visibility
|
||||
get() = originalVisibility.delegate
|
||||
|
||||
override fun isVisible(
|
||||
receiver: ReceiverValue?,
|
||||
what: DeclarationDescriptorWithVisibility,
|
||||
from: DeclarationDescriptor
|
||||
receiver: ReceiverValue?,
|
||||
what: DeclarationDescriptorWithVisibility,
|
||||
from: DeclarationDescriptor
|
||||
) = originalVisibility.isVisible(
|
||||
if (isUsedForExtension) DescriptorVisibilities.ALWAYS_SUITABLE_RECEIVER else receiver, originalDescriptor, from)
|
||||
if (isUsedForExtension) DescriptorVisibilities.ALWAYS_SUITABLE_RECEIVER else receiver, originalDescriptor, from
|
||||
)
|
||||
|
||||
override fun mustCheckInImports()
|
||||
= throw UnsupportedOperationException("Should never be called for this visibility")
|
||||
override fun mustCheckInImports() = throw UnsupportedOperationException("Should never be called for this visibility")
|
||||
|
||||
override fun normalize()
|
||||
= originalVisibility.normalize()
|
||||
override fun normalize() = originalVisibility.normalize()
|
||||
|
||||
override val internalDisplayName: String
|
||||
get() = originalVisibility.internalDisplayName + " for synthetic extension"
|
||||
|
||||
override val externalDisplayName: String
|
||||
get() = internalDisplayName
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user