jvm-abi-gen: Remove effectively private classes from ABI

#KT-64590 Fixed
This commit is contained in:
Vladimir Tagakov
2023-12-26 18:11:39 -07:00
committed by Space Team
parent 7cf793f308
commit 11d3ead975
50 changed files with 511 additions and 56 deletions
@@ -6,19 +6,17 @@
package org.jetbrains.kotlin.ir.overrides
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.types.getClass
import org.jetbrains.kotlin.ir.util.*
fun IrDeclarationWithVisibility.isEffectivelyPrivate(): Boolean {
fun DescriptorVisibility.isNonPrivate(): Boolean =
this == DescriptorVisibilities.PUBLIC
|| this == DescriptorVisibilities.PROTECTED
|| this == DescriptorVisibilities.INTERNAL
val isNonPrivate = visibility == DescriptorVisibilities.PUBLIC
|| visibility == DescriptorVisibilities.PROTECTED
|| visibility == DescriptorVisibilities.INTERNAL
return when {
visibility.isNonPrivate() -> parentClassOrNull?.isEffectivelyPrivate() ?: false
isNonPrivate -> parentClassOrNull?.isEffectivelyPrivate() ?: false
visibility == DescriptorVisibilities.INVISIBLE_FAKE -> {
val overridesOnlyPrivateDeclarations = (this as? IrOverridableDeclaration<*>)