Deprecate old kotlinx-metadata flags API:

Flag, Flag constants, Flags typealias, flagsOf() function, and
Flag accessors in nodes (such as KmClass.flags, KmClass.jvmFlags, KmProperty.setterFlags, etc)

#KT-59440
This commit is contained in:
Leonid Startsev
2023-06-01 16:33:05 +02:00
committed by Space Team
parent 1a1cbcb321
commit b15da7c63a
30 changed files with 733 additions and 653 deletions
@@ -5,13 +5,13 @@
package org.jetbrains.kotlin.jvm.abi
import kotlinx.metadata.Flag
import kotlinx.metadata.Flags
import kotlinx.metadata.KmClass
import kotlinx.metadata.KmPackage
import kotlinx.metadata.Visibility
import kotlinx.metadata.jvm.KotlinClassMetadata
import kotlinx.metadata.jvm.Metadata
import kotlinx.metadata.jvm.localDelegatedProperties
import kotlinx.metadata.visibility
import org.jetbrains.kotlin.load.java.JvmAnnotationNames.*
import org.jetbrains.org.objectweb.asm.AnnotationVisitor
import org.jetbrains.org.objectweb.asm.Opcodes
@@ -154,19 +154,19 @@ private fun AnnotationVisitor.visitKotlinMetadata(header: Metadata) {
}
private fun KmClass.removePrivateDeclarations() {
constructors.removeIf { isPrivateDeclaration(it.flags) }
functions.removeIf { isPrivateDeclaration(it.flags) }
properties.removeIf { isPrivateDeclaration(it.flags) }
constructors.removeIf { it.visibility.isPrivate }
functions.removeIf { it.visibility.isPrivate }
properties.removeIf { it.visibility.isPrivate }
localDelegatedProperties.clear()
// TODO: do not serialize private type aliases once KT-17229 is fixed.
}
private fun KmPackage.removePrivateDeclarations() {
functions.removeIf { isPrivateDeclaration(it.flags) }
properties.removeIf { isPrivateDeclaration(it.flags) }
functions.removeIf { it.visibility.isPrivate }
properties.removeIf { it.visibility.isPrivate }
localDelegatedProperties.clear()
// TODO: do not serialize private type aliases once KT-17229 is fixed.
}
private fun isPrivateDeclaration(flags: Flags): Boolean =
Flag.IS_PRIVATE(flags) || Flag.IS_PRIVATE_TO_THIS(flags) || Flag.IS_LOCAL(flags)
private val Visibility.isPrivate: Boolean
get() = this == Visibility.PRIVATE || this == Visibility.PRIVATE_TO_THIS || this == Visibility.LOCAL