Introduce @DeprecatedVisitor; mark up visitor-related declarations with it.

Provide convenient JVM writing API.

Get rid of ExperimentalUnsignedTypes.
This commit is contained in:
Leonid Startsev
2022-10-20 17:23:53 +02:00
committed by Space Team
parent dd985d8209
commit 471882b743
29 changed files with 653 additions and 43 deletions
@@ -18,6 +18,7 @@ import org.jetbrains.org.objectweb.asm.Opcodes
* Wrap the visitor for a Kotlin Metadata annotation to strip out private and local
* functions, properties, and type aliases as well as local delegated properties.
*/
@OptIn(DeprecatedVisitor::class)
fun abiMetadataProcessor(annotationVisitor: AnnotationVisitor): AnnotationVisitor =
kotlinClassHeaderVisitor { header ->
// kotlinx-metadata only supports writing Kotlin metadata of version >= 1.4, so we need to
@@ -136,6 +137,7 @@ private fun AnnotationVisitor.visitKotlinMetadata(header: KotlinClassHeader) {
* Class metadata adapter which removes private functions, properties, type aliases,
* and local delegated properties.
*/
@DeprecatedVisitor
private class AbiKmClassVisitor(delegate: KmClassVisitor) : KmClassVisitor(delegate) {
override fun visitConstructor(flags: Flags): KmConstructorVisitor? {
if (!isPrivateDeclaration(flags))
@@ -172,6 +174,7 @@ private class AbiKmClassVisitor(delegate: KmClassVisitor) : KmClassVisitor(deleg
* Class metadata adapter which removes private functions, properties, type aliases,
* and local delegated properties.
*/
@DeprecatedVisitor
private class AbiKmPackageVisitor(delegate: KmPackageVisitor) : KmPackageVisitor(delegate) {
override fun visitFunction(flags: Flags, name: String): KmFunctionVisitor? {
if (!isPrivateDeclaration(flags))