diff --git a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/KotlinClassMetadata.kt b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/KotlinClassMetadata.kt index fe5b5c726cb..98a8d9294c2 100644 --- a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/KotlinClassMetadata.kt +++ b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/KotlinClassMetadata.kt @@ -2,6 +2,7 @@ * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.jvm @@ -37,7 +38,6 @@ sealed class KotlinClassMetadata(val header: Metadata) { /** * Visits metadata of this class with a new [KmClass] instance and returns that instance. */ - @OptIn(DeprecatedVisitor::class) fun toKmClass(): KmClass = KmClass().apply(this::accept) @@ -46,7 +46,7 @@ sealed class KotlinClassMetadata(val header: Metadata) { * * @param v the visitor that must visit this class */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(v: KmClassVisitor) { val (strings, proto) = classData proto.accept(v, strings) @@ -55,10 +55,9 @@ sealed class KotlinClassMetadata(val header: Metadata) { /** * A [KmClassVisitor] that generates the metadata of a Kotlin class. */ - @OptIn(DeprecatedVisitor::class) @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeClass(kmClass, metadataVersion, extraInt)", - level = DeprecationLevel.ERROR + writerApiMessage, + ReplaceWith("KotlinClassMetadata.writeClass(kmClass, metadataVersion, extraInt)"), ) class Writer : ClassWriter(JvmStringTable()) { /** @@ -71,8 +70,8 @@ sealed class KotlinClassMetadata(val header: Metadata) { */ @JvmOverloads @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeClass(kmClass, metadataVersion, extraInt)", - level = DeprecationLevel.ERROR + writerApiMessage, + ReplaceWith("KotlinClassMetadata.writeClass(kmClass, metadataVersion, extraInt)"), ) fun write( metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, @@ -99,7 +98,6 @@ sealed class KotlinClassMetadata(val header: Metadata) { /** * Visits metadata of this file facade with a new [KmPackage] instance and returns that instance. */ - @OptIn(DeprecatedVisitor::class) fun toKmPackage(): KmPackage = KmPackage().apply(this::accept) @@ -108,7 +106,7 @@ sealed class KotlinClassMetadata(val header: Metadata) { * * @param v the visitor that must visit this file facade */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(v: KmPackageVisitor) { val (strings, proto) = packageData proto.accept(v, strings) @@ -117,10 +115,9 @@ sealed class KotlinClassMetadata(val header: Metadata) { /** * A [KmPackageVisitor] that generates the metadata of a Kotlin file facade. */ - @OptIn(DeprecatedVisitor::class) @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeFileFacade(kmPackage, metadataVersion, extraInt)", - level = DeprecationLevel.ERROR + visitorApiMessage, + ReplaceWith("KotlinClassMetadata.writeFileFacade(kmPackage, metadataVersion, extraInt)") ) class Writer : PackageWriter(JvmStringTable()) { /** @@ -133,8 +130,8 @@ sealed class KotlinClassMetadata(val header: Metadata) { */ @JvmOverloads @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeFileFacade(kmPackage, metadataVersion, extraInt)", - level = DeprecationLevel.ERROR + visitorApiMessage, + ReplaceWith("KotlinClassMetadata.writeFileFacade(kmPackage, metadataVersion, extraInt)") ) fun write( metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, @@ -164,7 +161,6 @@ sealed class KotlinClassMetadata(val header: Metadata) { * * Returns `null` if this synthetic class does not represent a lambda. */ - @OptIn(DeprecatedVisitor::class) fun toKmLambda(): KmLambda? = if (isLambda) KmLambda().apply(this::accept) else null @@ -182,7 +178,7 @@ sealed class KotlinClassMetadata(val header: Metadata) { * * @param v the visitor that must visit this lambda */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(v: KmLambdaVisitor) { if (!isLambda) throw IllegalStateException( "accept(KmLambdaVisitor) is only possible for synthetic classes which are lambdas (isLambda = true)" @@ -197,11 +193,9 @@ sealed class KotlinClassMetadata(val header: Metadata) { * call [Writer.visitFunction] and [Writer.visitEnd] on a newly created instance of this writer. If these methods are not called, * the resulting metadata will represent a _non-lambda_ synthetic class. */ - @OptIn(DeprecatedVisitor::class) @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeLambda(kmLambda, metadataVersion, extraInt) " + + "Visitor API is deprecated as excessive and cumbersome. Please use KotlinClassMetadata.writeLambda(kmLambda, metadataVersion, extraInt) " + "or KotlinClassMetadata.writeSyntheticClass(metadataVersion, extraInt) for a non-lambda synthetic class", - level = DeprecationLevel.ERROR ) class Writer : LambdaWriter(JvmStringTable()) { /** @@ -213,9 +207,8 @@ sealed class KotlinClassMetadata(val header: Metadata) { * 0 by default */ @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeLambda(kmLambda, metadataVersion, extraInt) " + + "Visitor API is deprecated as excessive and cumbersome. Please use KotlinClassMetadata.writeLambda(kmLambda, metadataVersion, extraInt) " + "or KotlinClassMetadata.writeSyntheticClass(metadataVersion, extraInt) for a non-lambda synthetic class", - level = DeprecationLevel.ERROR ) @JvmOverloads fun write( @@ -248,8 +241,8 @@ sealed class KotlinClassMetadata(val header: Metadata) { * A writer that generates the metadata of a multi-file class facade. */ @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeMultiFileClassFacade(partClassNames, metadataVersion, extraInt)", - level = DeprecationLevel.ERROR + writerApiMessage, + ReplaceWith("KotlinClassMetadata.writeMultiFileClassFacade(partClassNames, metadataVersion, extraInt)"), ) class Writer { /** @@ -262,9 +255,8 @@ sealed class KotlinClassMetadata(val header: Metadata) { * 0 by default */ @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeMultiFileClassFacade(partClassNames, metadataVersion, extraInt)", + writerApiMessage, ReplaceWith("KotlinClassMetadata.writeMultiFileClassFacade(partClassNames, metadataVersion, extraInt)"), - level = DeprecationLevel.ERROR ) @JvmOverloads fun write( @@ -304,7 +296,6 @@ sealed class KotlinClassMetadata(val header: Metadata) { /** * Visits metadata of this multi-file class part with a new [KmPackage] instance and returns that instance. */ - @OptIn(DeprecatedVisitor::class) fun toKmPackage(): KmPackage = KmPackage().apply(this::accept) @@ -313,7 +304,7 @@ sealed class KotlinClassMetadata(val header: Metadata) { * * @param v the visitor that must visit this multi-file class part */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(v: KmPackageVisitor) { val (strings, proto) = packageData proto.accept(v, strings) @@ -322,10 +313,9 @@ sealed class KotlinClassMetadata(val header: Metadata) { /** * A [KmPackageVisitor] that generates the metadata of a multi-file class part. */ - @OptIn(DeprecatedVisitor::class) @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeMultiFileClassPart(kmPackage, facadeClassName, metadataVersion, extraInt)", - level = DeprecationLevel.ERROR + writerApiMessage, + ReplaceWith("KotlinClassMetadata.writeMultiFileClassPart(kmPackage, facadeClassName, metadataVersion, extraInt)") ) class Writer : PackageWriter(JvmStringTable()) { /** @@ -338,8 +328,8 @@ sealed class KotlinClassMetadata(val header: Metadata) { * 0 by default */ @Deprecated( - "Writer API is deprecated. Please use KotlinClassMetadata.writeMultiFileClassPart(kmPackage, facadeClassName, metadataVersion, extraInt)", - level = DeprecationLevel.ERROR + writerApiMessage, + ReplaceWith("KotlinClassMetadata.writeMultiFileClassPart(kmPackage, facadeClassName, metadataVersion, extraInt)") ) @JvmOverloads fun write( @@ -364,47 +354,84 @@ sealed class KotlinClassMetadata(val header: Metadata) { class Unknown internal constructor(header: Metadata) : KotlinClassMetadata(header) companion object { - // TODO: docs - @OptIn(DeprecatedVisitor::class) - @Suppress("DEPRECATION_ERROR") + /** + * Writes contents of [kmClass] as the class metadata. + * + * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]), + * [KotlinClassMetadata.COMPATIBLE_METADATA_VERSION] by default. Cannot be less (lexicographically) than `[1, 4]` + * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]), + * 0 by default + */ fun writeClass( kmClass: KmClass, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, extraInt: Int = 0 - ): Class = KotlinClassMetadata.Class.Writer().also { kmClass.accept(it) }.write(metadataVersion, extraInt) + ): Class = Class.Writer().also { kmClass.accept(it) }.write(metadataVersion, extraInt) - // TODO: docs - @OptIn(DeprecatedVisitor::class) - @Suppress("DEPRECATION_ERROR") + /** + * Writes [kmPackage] contents as the file facade metadata. + * + * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]), + * [KotlinClassMetadata.COMPATIBLE_METADATA_VERSION] by default. Cannot be less (lexicographically) than `[1, 4]` + * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]), + * 0 by default + */ fun writeFileFacade( kmPackage: KmPackage, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, extraInt: Int = 0 ): FileFacade = FileFacade.Writer().also { kmPackage.accept(it) }.write(metadataVersion, extraInt) - @OptIn(DeprecatedVisitor::class) - @Suppress("DEPRECATION_ERROR") + /** + * Writes [kmLambda] as the synthetic class metadata. + * + * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]), + * [KotlinClassMetadata.COMPATIBLE_METADATA_VERSION] by default. Cannot be less (lexicographically) than `[1, 4]` + * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]), + * 0 by default + */ fun writeLambda( kmLambda: KmLambda, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, extraInt: Int = 0 ): SyntheticClass = SyntheticClass.Writer().also { kmLambda.accept(it) }.write(metadataVersion, extraInt) - @OptIn(DeprecatedVisitor::class) - @Suppress("DEPRECATION_ERROR") + /** + * Writes synthetic class metadata. + * + * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]), + * [KotlinClassMetadata.COMPATIBLE_METADATA_VERSION] by default. Cannot be less (lexicographically) than `[1, 4]` + * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]), + * 0 by default + */ fun writeSyntheticClass( metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, extraInt: Int = 0 ): SyntheticClass = SyntheticClass.Writer().write(metadataVersion, extraInt) - @Suppress("DEPRECATION_ERROR") + /** + * Writes metadata of the multi-file class facade. + * + * @param partClassNames JVM internal names of the part classes which this multi-file class combines + * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]), + * [KotlinClassMetadata.COMPATIBLE_METADATA_VERSION] by default. Cannot be less (lexicographically) than `[1, 4]` + * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]), + * 0 by default + */ fun writeMultiFileClassFacade( partClassNames: List, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, extraInt: Int = 0 ): MultiFileClassFacade = MultiFileClassFacade.Writer().write(partClassNames, metadataVersion, extraInt) - @OptIn(DeprecatedVisitor::class) - @Suppress("DEPRECATION_ERROR") + /** + * Writes the metadata of the multi-file class part. + * + * @param facadeClassName JVM internal name of the corresponding multi-file class facade + * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]), + * [KotlinClassMetadata.COMPATIBLE_METADATA_VERSION] by default. Cannot be less (lexicographically) than `[1, 4]` + * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]), + * 0 by default + */ fun writeMultiFileClassPart( kmPackage: KmPackage, facadeClassName: String, @@ -503,3 +530,9 @@ sealed class KotlinClassMetadata(val header: Metadata) { val COMPATIBLE_METADATA_VERSION = JvmMetadataVersion.INSTANCE.toArray().copyOf() } } + +internal const val visitorApiMessage = + "Visitor API is deprecated as excessive and cumbersome. Please use nodes (such as KmClass) and their properties." + +internal const val writerApiMessage = + "Visitor API is deprecated as excessive and cumbersome. Please use companion functions on KotlinClassMetadata, such as KotlinClassMetadata.writeClass." \ No newline at end of file diff --git a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/KotlinModuleMetadata.kt b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/KotlinModuleMetadata.kt index 3763c86b8c6..5daa709b145 100644 --- a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/KotlinModuleMetadata.kt +++ b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/KotlinModuleMetadata.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -@file:Suppress("MemberVisibilityCanBePrivate") +@file:Suppress("MemberVisibilityCanBePrivate", "DEPRECATION") package kotlinx.metadata.jvm @@ -23,8 +23,6 @@ import org.jetbrains.kotlin.metadata.jvm.deserialization.serializeToByteArray * and call [KotlinModuleMetadata.read]. * * @property bytes the byte array representing the contents of a `.kotlin_module` file - * - * TODO: since it is not completed, may be we should just delete it? */ class KotlinModuleMetadata(@Suppress("CanBeParameter", "MemberVisibilityCanBePrivate") val bytes: ByteArray) { internal val data: ModuleMapping = ModuleMapping.loadModuleMapping( @@ -36,15 +34,13 @@ class KotlinModuleMetadata(@Suppress("CanBeParameter", "MemberVisibilityCanBePri /** * Visits metadata of this module with a new [KmModule] instance and returns that instance. */ - @OptIn(DeprecatedVisitor::class) fun toKmModule(): KmModule = KmModule().apply(this::accept) /** * A [KmModuleVisitor] that generates the metadata of a Kotlin JVM module file. */ - @OptIn(DeprecatedVisitor::class) - @Deprecated("Writer class API is deprecated. Please use KotlinModuleMetadata.write(kmModule, metadataVersion)", level = DeprecationLevel.ERROR) + @Deprecated("Writer API is deprecated as excessive and cumbersome. Please use KotlinModuleMetadata.write(kmModule, metadataVersion)") class Writer : KmModuleVisitor() { private val b = JvmModuleProtoBuf.Module.newBuilder() @@ -87,7 +83,7 @@ class KotlinModuleMetadata(@Suppress("CanBeParameter", "MemberVisibilityCanBePri * @param metadataVersion metadata version to be written to the metadata (see [Metadata.metadataVersion]), * [KotlinClassMetadata.COMPATIBLE_METADATA_VERSION] by default */ - @Deprecated("Writer class API is deprecated. Please use KotlinModuleMetadata.write(kmModule, metadataVersion)", level = DeprecationLevel.ERROR) + @Deprecated("Writer API is deprecated as excessive and cumbersome. Please use KotlinModuleMetadata.write(kmModule, metadataVersion)") fun write(metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION): KotlinModuleMetadata = KotlinModuleMetadata(b.build().serializeToByteArray(JvmMetadataVersion(*metadataVersion), 0)) } @@ -97,7 +93,7 @@ class KotlinModuleMetadata(@Suppress("CanBeParameter", "MemberVisibilityCanBePri * * @param v the visitor that must visit this module file */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(v: KmModuleVisitor) { for ((fqName, parts) in data.packageFqName2Parts) { val (fileFacades, multiFileClassParts) = parts.parts.partition { parts.getMultifileFacadeName(it) == null } @@ -143,9 +139,9 @@ class KotlinModuleMetadata(@Suppress("CanBeParameter", "MemberVisibilityCanBePri } } - @OptIn(DeprecatedVisitor::class) - @Suppress("DEPRECATION_ERROR") - fun write(kmModule: KmModule, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION): KotlinModuleMetadata = Writer().also { kmModule.accept(it) }.write(metadataVersion) + // TODO: docs + fun write(kmModule: KmModule, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION): KotlinModuleMetadata = + Writer().also { kmModule.accept(it) }.write(metadataVersion) } } @@ -154,7 +150,7 @@ class KotlinModuleMetadata(@Suppress("CanBeParameter", "MemberVisibilityCanBePri * * When using this class, [visitEnd] must be called exactly once and after calls to all other visit* methods. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) abstract class KmModuleVisitor(private val delegate: KmModuleVisitor? = null) { /** * Visits the table of all single- and multi-file facades declared in some package of this module. @@ -203,7 +199,6 @@ abstract class KmModuleVisitor(private val delegate: KmModuleVisitor? = null) { /** * Represents a Kotlin JVM module file. */ -@OptIn(DeprecatedVisitor::class) class KmModule : KmModuleVisitor() { /** * Table of all single- and multi-file facades declared in some package of this module, where keys are '.'-separated package names. @@ -225,17 +220,17 @@ class KmModule : KmModuleVisitor() { */ val optionalAnnotationClasses: MutableList = ArrayList(0) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitPackageParts(fqName: String, fileFacades: List, multiFileClassParts: Map) { packageParts[fqName] = KmPackageParts(fileFacades.toMutableList(), multiFileClassParts.toMutableMap()) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitAnnotation(annotation: KmAnnotation) { annotations.add(annotation) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitOptionalAnnotationClass(): KmClass = KmClass().also(optionalAnnotationClasses::add) @@ -244,7 +239,7 @@ class KmModule : KmModuleVisitor() { * * @param visitor the visitor which will visit data in this module. */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmModuleVisitor) { for ((fqName, parts) in packageParts) { visitor.visitPackageParts(fqName, parts.fileFacades, parts.multiFileClassParts) diff --git a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/JvmMetadataExtensions.kt b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/JvmMetadataExtensions.kt index 552e0d5cf95..2d554b6c5de 100644 --- a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/JvmMetadataExtensions.kt +++ b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/JvmMetadataExtensions.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION", "DEPRECATION_ERROR") internal class JvmMetadataExtensions : MetadataExtensions { override fun readClassExtensions(v: KmClassVisitor, proto: ProtoBuf.Class, c: ReadContext) { val ext = v.visitExtensions(JvmClassExtensionVisitor.TYPE) as? JvmClassExtensionVisitor ?: return diff --git a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/jvmExtensionNodes.kt b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/jvmExtensionNodes.kt index 34162e29ce5..5b4239309eb 100644 --- a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/jvmExtensionNodes.kt +++ b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/jvmExtensionNodes.kt @@ -2,6 +2,7 @@ * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.jvm.impl @@ -9,31 +10,24 @@ import kotlinx.metadata.* import kotlinx.metadata.impl.extensions.* import kotlinx.metadata.jvm.* -@OptIn(DeprecatedVisitor::class) // internal so OK internal val KmClass.jvm: JvmClassExtension get() = visitExtensions(JvmClassExtensionVisitor.TYPE) as JvmClassExtension -@OptIn(DeprecatedVisitor::class) // internal so OK internal val KmPackage.jvm: JvmPackageExtension get() = visitExtensions(JvmPackageExtensionVisitor.TYPE) as JvmPackageExtension -@OptIn(DeprecatedVisitor::class) internal val KmFunction.jvm: JvmFunctionExtension get() = visitExtensions(JvmFunctionExtensionVisitor.TYPE) as JvmFunctionExtension -@OptIn(DeprecatedVisitor::class) internal val KmProperty.jvm: JvmPropertyExtension get() = visitExtensions(JvmPropertyExtensionVisitor.TYPE) as JvmPropertyExtension -@OptIn(DeprecatedVisitor::class) internal val KmConstructor.jvm: JvmConstructorExtension get() = visitExtensions(JvmConstructorExtensionVisitor.TYPE) as JvmConstructorExtension -@OptIn(DeprecatedVisitor::class) internal val KmTypeParameter.jvm: JvmTypeParameterExtension get() = visitExtensions(JvmTypeParameterExtensionVisitor.TYPE) as JvmTypeParameterExtension -@OptIn(DeprecatedVisitor::class) internal val KmType.jvm: JvmTypeExtension get() = visitExtensions(JvmTypeExtensionVisitor.TYPE) as JvmTypeExtension @@ -44,7 +38,6 @@ internal class JvmClassExtension : JvmClassExtensionVisitor(), KmClassExtension var anonymousObjectOriginName: String? = null var jvmFlags: Flags = 0 - @OptIn(DeprecatedVisitor::class) // TODO override fun visitLocalDelegatedProperty(flags: Flags, name: String, getterFlags: Flags, setterFlags: Flags): KmPropertyVisitor = KmProperty(flags, name, getterFlags, setterFlags).also { localDelegatedProperties.add(it) } @@ -63,7 +56,6 @@ internal class JvmClassExtension : JvmClassExtensionVisitor(), KmClassExtension override fun accept(visitor: KmClassExtensionVisitor) { require(visitor is JvmClassExtensionVisitor) localDelegatedProperties.forEach { - @OptIn(DeprecatedVisitor::class) // TODO visitor.visitLocalDelegatedProperty(it.flags, it.name, it.getterFlags, it.setterFlags)?.let(it::accept) } moduleName?.let(visitor::visitModuleName) @@ -73,7 +65,6 @@ internal class JvmClassExtension : JvmClassExtensionVisitor(), KmClassExtension } } -@OptIn(DeprecatedVisitor::class) // TODO internal class JvmPackageExtension : JvmPackageExtensionVisitor(), KmPackageExtension { val localDelegatedProperties: MutableList = ArrayList(0) var moduleName: String? = null diff --git a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/jvmExtensionVisitors.kt b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/jvmExtensionVisitors.kt index ba563c616cb..5d306a109c9 100644 --- a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/jvmExtensionVisitors.kt +++ b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/jvmExtensionVisitors.kt @@ -2,6 +2,7 @@ * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.jvm @@ -11,6 +12,7 @@ import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil /** * A visitor containing the common code to visit JVM extensions for Kotlin declaration containers, such as classes and package fragments. */ +@Deprecated(visitorApiMessage) abstract class JvmDeclarationContainerExtensionVisitor @JvmOverloads constructor( protected open val delegate: JvmDeclarationContainerExtensionVisitor? = null ) : KmDeclarationContainerExtensionVisitor { @@ -30,7 +32,6 @@ abstract class JvmDeclarationContainerExtensionVisitor @JvmOverloads constructor * @param setterFlags property accessor flags, consisting of [Flag.HAS_ANNOTATIONS], visibility flag, modality flag * and [Flag.PropertyAccessor] flags */ - @OptIn(DeprecatedVisitor::class) // TODO open fun visitLocalDelegatedProperty(flags: Flags, name: String, getterFlags: Flags, setterFlags: Flags): KmPropertyVisitor? = delegate?.visitLocalDelegatedProperty(flags, name, getterFlags, setterFlags) @@ -45,6 +46,7 @@ abstract class JvmDeclarationContainerExtensionVisitor @JvmOverloads constructor /** * A visitor to visit JVM extensions for a class. */ +@Deprecated(visitorApiMessage) open class JvmClassExtensionVisitor @JvmOverloads constructor( delegate: JvmClassExtensionVisitor? = null ) : KmClassExtensionVisitor, JvmDeclarationContainerExtensionVisitor(delegate) { @@ -90,6 +92,7 @@ open class JvmClassExtensionVisitor @JvmOverloads constructor( /** * A visitor to visit JVM extensions for a package fragment. */ +@Deprecated(visitorApiMessage) open class JvmPackageExtensionVisitor @JvmOverloads constructor( delegate: JvmPackageExtensionVisitor? = null ) : KmPackageExtensionVisitor, JvmDeclarationContainerExtensionVisitor(delegate) { @@ -120,6 +123,7 @@ open class JvmPackageExtensionVisitor @JvmOverloads constructor( /** * A visitor to visit JVM extensions for a function. */ +@Deprecated(visitorApiMessage) open class JvmFunctionExtensionVisitor @JvmOverloads constructor( private val delegate: JvmFunctionExtensionVisitor? = null ) : KmFunctionExtensionVisitor { @@ -166,6 +170,7 @@ open class JvmFunctionExtensionVisitor @JvmOverloads constructor( /** * A visitor to visit JVM extensions for a property. */ +@Deprecated(visitorApiMessage) open class JvmPropertyExtensionVisitor @JvmOverloads constructor( private val delegate: JvmPropertyExtensionVisitor? = null ) : KmPropertyExtensionVisitor { @@ -254,6 +259,7 @@ open class JvmPropertyExtensionVisitor @JvmOverloads constructor( /** * A visitor to visit JVM extensions for a constructor. */ +@Deprecated(visitorApiMessage) open class JvmConstructorExtensionVisitor @JvmOverloads constructor( private val delegate: JvmConstructorExtensionVisitor? = null ) : KmConstructorExtensionVisitor { @@ -285,6 +291,7 @@ open class JvmConstructorExtensionVisitor @JvmOverloads constructor( /** * A visitor to visit JVM extensions for a type parameter. */ +@Deprecated(visitorApiMessage) open class JvmTypeParameterExtensionVisitor @JvmOverloads constructor( private val delegate: JvmTypeParameterExtensionVisitor? = null ) : KmTypeParameterExtensionVisitor { @@ -321,6 +328,7 @@ open class JvmTypeParameterExtensionVisitor @JvmOverloads constructor( /** * A visitor to visit JVM extensions for a type. */ +@Deprecated(visitorApiMessage) open class JvmTypeExtensionVisitor @JvmOverloads constructor( private val delegate: JvmTypeExtensionVisitor? = null ) : KmTypeExtensionVisitor { @@ -366,6 +374,6 @@ open class JvmTypeExtensionVisitor @JvmOverloads constructor( * * @see KmTypeVisitor.visitFlexibleTypeUpperBound */ - const val PLATFORM_TYPE_ID = JvmProtoBufUtil.PLATFORM_TYPE_ID + const val PLATFORM_TYPE_ID = JvmProtoBufUtil.PLATFORM_TYPE_ID // TODO: move out of deprecated visitor } } diff --git a/libraries/kotlinx-metadata/jvm/test/kotlinx/metadata/test/MetadataSmokeTest.kt b/libraries/kotlinx-metadata/jvm/test/kotlinx/metadata/test/MetadataSmokeTest.kt index 0ad7cbe233a..7f9b463c617 100644 --- a/libraries/kotlinx-metadata/jvm/test/kotlinx/metadata/test/MetadataSmokeTest.kt +++ b/libraries/kotlinx-metadata/jvm/test/kotlinx/metadata/test/MetadataSmokeTest.kt @@ -15,7 +15,7 @@ import kotlin.coroutines.CoroutineContext import kotlin.reflect.full.primaryConstructor import kotlin.test.* -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class MetadataSmokeTest { private fun Class<*>.readMetadata(): Metadata { return getAnnotation(Metadata::class.java) diff --git a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/KlibModuleMetadata.kt b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/KlibModuleMetadata.kt index ce587cd1427..0bcec2fc9d7 100644 --- a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/KlibModuleMetadata.kt +++ b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/KlibModuleMetadata.kt @@ -2,10 +2,10 @@ * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.klib -import kotlinx.metadata.DeprecatedVisitor import kotlinx.metadata.KmAnnotation import kotlinx.metadata.KmModuleFragment import kotlinx.metadata.impl.WriteContext @@ -79,7 +79,6 @@ class KlibModuleMetadata( * Deserializes metadata from the given [library]. * @param readStrategy specifies the way module fragments of a single package are modified (e.g. merged) after deserialization. */ - @OptIn(DeprecatedVisitor::class) fun read( library: MetadataLibraryProvider, readStrategy: KlibModuleFragmentReadStrategy = KlibModuleFragmentReadStrategy.DEFAULT @@ -103,7 +102,6 @@ class KlibModuleMetadata( * Writes metadata back to serialized representation. * @param writeStrategy specifies the way module fragments are modified (e.g. split) before serialization. */ - @OptIn(DeprecatedVisitor::class) fun write( writeStrategy: KlibModuleFragmentWriteStrategy = KlibModuleFragmentWriteStrategy.DEFAULT ): SerializedKlibMetadata { diff --git a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibExtensionNodes.kt b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibExtensionNodes.kt index 90155ca53f2..4ae91028f7d 100644 --- a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibExtensionNodes.kt +++ b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibExtensionNodes.kt @@ -2,6 +2,7 @@ * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.klib.impl @@ -9,43 +10,33 @@ import kotlinx.metadata.* import kotlinx.metadata.impl.extensions.* import kotlinx.metadata.klib.* -@OptIn(DeprecatedVisitor::class) internal val KmFunction.klibExtensions: KlibFunctionExtension get() = visitExtensions(KlibFunctionExtensionVisitor.TYPE) as KlibFunctionExtension -@OptIn(DeprecatedVisitor::class) internal val KmClass.klibExtensions: KlibClassExtension get() = visitExtensions(KlibClassExtensionVisitor.TYPE) as KlibClassExtension -@OptIn(DeprecatedVisitor::class) internal val KmType.klibExtensions: KlibTypeExtension get() = visitExtensions(KlibTypeExtensionVisitor.TYPE) as KlibTypeExtension -@OptIn(DeprecatedVisitor::class) internal val KmProperty.klibExtensions: KlibPropertyExtension get() = visitExtensions(KlibPropertyExtensionVisitor.TYPE) as KlibPropertyExtension -@OptIn(DeprecatedVisitor::class) internal val KmConstructor.klibExtensions: KlibConstructorExtension get() = visitExtensions(KlibConstructorExtensionVisitor.TYPE) as KlibConstructorExtension -@OptIn(DeprecatedVisitor::class) internal val KmTypeParameter.klibExtensions: KlibTypeParameterExtension get() = visitExtensions(KlibTypeParameterExtensionVisitor.TYPE) as KlibTypeParameterExtension -@OptIn(DeprecatedVisitor::class) internal val KmPackage.klibExtensions: KlibPackageExtension get() = visitExtensions(KlibPackageExtensionVisitor.TYPE) as KlibPackageExtension -@OptIn(DeprecatedVisitor::class) internal val KmModuleFragment.klibExtensions: KlibModuleFragmentExtension get() = visitExtensions(KlibModuleFragmentExtensionVisitor.TYPE) as KlibModuleFragmentExtension -@OptIn(DeprecatedVisitor::class) internal val KmTypeAlias.klibExtensions: KlibTypeAliasExtension get() = visitExtensions(KlibTypeAliasExtensionVisitor.TYPE) as KlibTypeAliasExtension -@OptIn(DeprecatedVisitor::class) internal val KmValueParameter.klibExtensions: KlibValueParameterExtension get() = visitExtensions(KlibValueParameterExtensionVisitor.TYPE) as KlibValueParameterExtension diff --git a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibMetadataExtensions.kt b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibMetadataExtensions.kt index c776a4fcf67..327f8205502 100644 --- a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibMetadataExtensions.kt +++ b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibMetadataExtensions.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.serialization.StringTableImpl -@OptIn(DeprecatedVisitor::class) // TODO +@Suppress("DEPRECATION", "DEPRECATION_ERROR") internal class KlibMetadataExtensions : MetadataExtensions { private fun ReadContext.getSourceFile(index: Int) = diff --git a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibWriters.kt b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibWriters.kt index 1ddcaab5690..65d5ad1ba55 100644 --- a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibWriters.kt +++ b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibWriters.kt @@ -2,10 +2,10 @@ * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.klib.impl -import kotlinx.metadata.DeprecatedVisitor import kotlinx.metadata.impl.* import kotlinx.metadata.klib.KlibSourceFile import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf @@ -26,7 +26,6 @@ class ReverseSourceFileIndexWriteExtension : WriteContextExtension { } } -@DeprecatedVisitor class KlibModuleFragmentWriter( stringTable: ApproximatingStringTable, contextExtensions: List = emptyList() diff --git a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/klibMetadataExtensionVisitors.kt b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/klibMetadataExtensionVisitors.kt index 32a3a4187fc..427b6d72067 100644 --- a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/klibMetadataExtensionVisitors.kt +++ b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/klibMetadataExtensionVisitors.kt @@ -2,6 +2,7 @@ * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.klib diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/extensions.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/extensions.kt index 2f7f8214ead..ec9f1a74604 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/extensions.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/extensions.kt @@ -2,6 +2,7 @@ * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata @@ -42,6 +43,7 @@ class KmExtensionType(private val klass: KClass) { /** * A base interface for all extension visitors. */ +@Deprecated(visitorApiMessage) interface KmExtensionVisitor { /** * Type of this extension visitor. @@ -52,54 +54,65 @@ interface KmExtensionVisitor { /** * A visitor to visit platform-specific extensions for a declaration container, such as a class or a package fragment. */ +@Deprecated(visitorApiMessage) interface KmDeclarationContainerExtensionVisitor : KmExtensionVisitor /** * A visitor to visit platform-specific extensions for a class. */ +@Deprecated(visitorApiMessage) interface KmClassExtensionVisitor : KmDeclarationContainerExtensionVisitor /** * A visitor to visit platform-specific extensions for a package fragment. */ +@Deprecated(visitorApiMessage) interface KmPackageExtensionVisitor : KmDeclarationContainerExtensionVisitor /** * A visitor to visit platform-specific extensions for a module fragment. */ +@Deprecated(visitorApiMessage) interface KmModuleFragmentExtensionVisitor : KmExtensionVisitor /** * A visitor to visit platform-specific extensions for a function. */ +@Deprecated(visitorApiMessage) interface KmFunctionExtensionVisitor : KmExtensionVisitor /** * A visitor to visit platform-specific extensions for a property. */ +@Deprecated(visitorApiMessage) interface KmPropertyExtensionVisitor : KmExtensionVisitor /** * A visitor to visit platform-specific extensions for a constructor. */ +@Deprecated(visitorApiMessage) interface KmConstructorExtensionVisitor : KmExtensionVisitor /** * A visitor to visit platform-specific extensions for a type parameter. */ +@Deprecated(visitorApiMessage) interface KmTypeParameterExtensionVisitor : KmExtensionVisitor /** * A visitor to visit platform-specific extensions for a type. */ +@Deprecated(visitorApiMessage) interface KmTypeExtensionVisitor : KmExtensionVisitor /** * A visitor to visit platform-specific extensions for a type alias. */ +@Deprecated(visitorApiMessage) interface KmTypeAliasExtensionVisitor : KmExtensionVisitor /** * A visitor to visit platform-specific extensions for a value parameter. */ +@Deprecated(visitorApiMessage) interface KmValueParameterExtensionVisitor : KmExtensionVisitor diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/MetadataExtensions.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/MetadataExtensions.kt index 50f2628cd79..2972defe38a 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/MetadataExtensions.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/MetadataExtensions.kt @@ -11,7 +11,8 @@ import kotlinx.metadata.impl.WriteContext import org.jetbrains.kotlin.metadata.ProtoBuf import java.util.* -@OptIn(DeprecatedVisitor::class) // TODO: all this should be refactored to entities, not visitors +// TODO: this intrerface should be marked with @InternalAPI or something +@Suppress("DEPRECATION", "DEPRECATION_ERROR") interface MetadataExtensions { fun readClassExtensions(v: KmClassVisitor, proto: ProtoBuf.Class, c: ReadContext) diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/extensionNodes.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/extensionNodes.kt index d38c7fd726e..f61a53510a7 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/extensionNodes.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/extensionNodes.kt @@ -2,6 +2,7 @@ * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.impl.extensions diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/extensionUtils.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/extensionUtils.kt index 7cb6a957fc7..5234970d82e 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/extensionUtils.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/extensions/extensionUtils.kt @@ -2,7 +2,7 @@ * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ - +@file:Suppress("DEPRECATION") package kotlinx.metadata.impl.extensions import kotlinx.metadata.KmExtensionType diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/readers.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/readers.kt index b2a6bef0c53..949a6335eaa 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/readers.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/readers.kt @@ -2,6 +2,7 @@ * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.impl @@ -47,7 +48,8 @@ class ReadContext( } } -@OptIn(DeprecatedVisitor::class, ExperimentalContextReceivers::class) // TODO +@Deprecated(visitorApiMessage) +@OptIn(ExperimentalContextReceivers::class) fun ProtoBuf.Class.accept( v: KmClassVisitor, strings: NameResolver, @@ -129,7 +131,7 @@ private fun ProtoBuf.Class.loadInlineClassUnderlyingType(c: ReadContext): ProtoB ?.returnType(c.types) } -@OptIn(DeprecatedVisitor::class) // TODO +@Deprecated(visitorApiMessage) fun ProtoBuf.Package.accept( v: KmPackageVisitor, strings: NameResolver, @@ -151,7 +153,7 @@ fun ProtoBuf.Package.accept( v.visitEnd() } -@OptIn(DeprecatedVisitor::class) // TODO +@Deprecated(visitorApiMessage) fun ProtoBuf.PackageFragment.accept( v: KmModuleFragmentVisitor, strings: NameResolver, @@ -177,7 +179,6 @@ fun ProtoBuf.PackageFragment.accept( v.visitEnd() } -@OptIn(DeprecatedVisitor::class) // TODO private fun KmDeclarationContainerVisitor.visitDeclarations( functions: List, properties: List, @@ -199,7 +200,7 @@ private fun KmDeclarationContainerVisitor.visitDeclarations( } } -@OptIn(DeprecatedVisitor::class) +@Deprecated(visitorApiMessage) fun ProtoBuf.Function.accept(v: KmLambdaVisitor, strings: NameResolver) { val c = ReadContext(strings, TypeTable(typeTable), VersionRequirementTable.EMPTY) @@ -208,7 +209,7 @@ fun ProtoBuf.Function.accept(v: KmLambdaVisitor, strings: NameResolver) { v.visitEnd() } -@DeprecatedVisitor +@Deprecated(visitorApiMessage) private fun ProtoBuf.Constructor.accept(v: KmConstructorVisitor, c: ReadContext) { for (parameter in valueParameterList) { v.visitValueParameter(parameter.flags, c[parameter.name])?.let { parameter.accept(it, c) } @@ -225,7 +226,7 @@ private fun ProtoBuf.Constructor.accept(v: KmConstructorVisitor, c: ReadContext) v.visitEnd() } -@OptIn(DeprecatedVisitor::class, ExperimentalContextReceivers::class) +@OptIn(ExperimentalContextReceivers::class) private fun ProtoBuf.Function.accept(v: KmFunctionVisitor, outer: ReadContext) { val c = outer.withTypeParameters(typeParameterList) @@ -265,7 +266,7 @@ private fun ProtoBuf.Function.accept(v: KmFunctionVisitor, outer: ReadContext) { } @OptIn(ExperimentalContextReceivers::class) -@DeprecatedVisitor +@Deprecated(visitorApiMessage) fun ProtoBuf.Property.accept(v: KmPropertyVisitor, outer: ReadContext) { val c = outer.withTypeParameters(typeParameterList) @@ -301,7 +302,6 @@ fun ProtoBuf.Property.accept(v: KmPropertyVisitor, outer: ReadContext) { v.visitEnd() } -@DeprecatedVisitor private fun ProtoBuf.TypeAlias.accept(v: KmTypeAliasVisitor, outer: ReadContext) { val c = outer.withTypeParameters(typeParameterList) @@ -332,7 +332,6 @@ private fun ProtoBuf.TypeAlias.accept(v: KmTypeAliasVisitor, outer: ReadContext) v.visitEnd() } -@DeprecatedVisitor private fun ProtoBuf.ValueParameter.accept(v: KmValueParameterVisitor, c: ReadContext) { type(c.types).let { type -> v.visitType(type.typeFlags)?.let { type.accept(it, c) } @@ -348,7 +347,7 @@ private fun ProtoBuf.ValueParameter.accept(v: KmValueParameterVisitor, c: ReadCo v.visitEnd() } -@DeprecatedVisitor + private inline fun ProtoBuf.TypeParameter.accept( visit: (flags: Flags, name: String, id: Int, variance: KmVariance) -> KmTypeParameterVisitor?, c: ReadContext @@ -362,7 +361,6 @@ private inline fun ProtoBuf.TypeParameter.accept( visit(typeParameterFlags, c[name], id, variance)?.let { accept(it, c) } } -@DeprecatedVisitor private fun ProtoBuf.TypeParameter.accept(v: KmTypeParameterVisitor, c: ReadContext) { for (upperBound in upperBounds(c.types)) { v.visitUpperBound(upperBound.typeFlags)?.let { upperBound.accept(it, c) } @@ -375,7 +373,6 @@ private fun ProtoBuf.TypeParameter.accept(v: KmTypeParameterVisitor, c: ReadCont v.visitEnd() } -@DeprecatedVisitor private fun ProtoBuf.Type.accept(v: KmTypeVisitor, c: ReadContext) { when { hasClassName() -> v.visitClass(c.className(className)) @@ -430,7 +427,6 @@ private fun ProtoBuf.Type.accept(v: KmTypeVisitor, c: ReadContext) { v.visitEnd() } -@DeprecatedVisitor private fun acceptVersionRequirementVisitor(id: Int, v: KmVersionRequirementVisitor, c: ReadContext) { val message = VersionRequirement.create(id, c.strings, c.versionRequirements) ?: throw InconsistentKotlinMetadataException("No VersionRequirement with the given id in the table") @@ -455,7 +451,6 @@ private fun acceptVersionRequirementVisitor(id: Int, v: KmVersionRequirementVisi v.visitEnd() } -@DeprecatedVisitor @ExperimentalContracts private fun ProtoBuf.Contract.accept(v: KmContractVisitor, c: ReadContext) { for (effect in effectList) { @@ -479,7 +474,6 @@ private fun ProtoBuf.Contract.accept(v: KmContractVisitor, c: ReadContext) { v.visitEnd() } -@DeprecatedVisitor @ExperimentalContracts private fun ProtoBuf.Effect.accept(v: KmEffectVisitor, c: ReadContext) { for (constructorArgument in effectConstructorArgumentList) { @@ -493,7 +487,6 @@ private fun ProtoBuf.Effect.accept(v: KmEffectVisitor, c: ReadContext) { v.visitEnd() } -@DeprecatedVisitor @ExperimentalContracts private fun ProtoBuf.Expression.accept(v: KmEffectExpressionVisitor, c: ReadContext) { v.visit( diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/writers.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/writers.kt index 42c8fd221bb..09abf447ed7 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/writers.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/impl/writers.kt @@ -2,11 +2,10 @@ * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ - +@file:Suppress("DEPRECATION") package kotlinx.metadata.impl import kotlinx.metadata.* -import kotlinx.metadata.impl.extensions.MetadataExtensions import kotlinx.metadata.impl.extensions.applySingleExtension import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement @@ -30,7 +29,6 @@ open class WriteContext(val strings: StringTable, val contextExtensions: List Unit @@ -62,7 +60,6 @@ private fun writeTypeParameter( } } -@DeprecatedVisitor private fun writeType(c: WriteContext, flags: Flags, output: (ProtoBuf.Type.Builder) -> Unit): KmTypeVisitor = object : KmTypeVisitor() { private val t = ProtoBuf.Type.newBuilder() @@ -128,7 +125,6 @@ private fun writeType(c: WriteContext, flags: Flags, output: (ProtoBuf.Type.Buil } } -@DeprecatedVisitor private fun writeConstructor(c: WriteContext, flags: Flags, output: (ProtoBuf.Constructor.Builder) -> Unit): KmConstructorVisitor = object : KmConstructorVisitor() { val t = ProtoBuf.Constructor.newBuilder() @@ -152,7 +148,6 @@ private fun writeConstructor(c: WriteContext, flags: Flags, output: (ProtoBuf.Co } } -@DeprecatedVisitor private fun writeFunction(c: WriteContext, flags: Flags, name: String, output: (ProtoBuf.Function.Builder) -> Unit): KmFunctionVisitor = object : KmFunctionVisitor() { val t = ProtoBuf.Function.newBuilder() @@ -194,7 +189,7 @@ private fun writeFunction(c: WriteContext, flags: Flags, name: String, output: ( } } -@DeprecatedVisitor +@Deprecated(visitorApiMessage) fun writeProperty( c: WriteContext, flags: Flags, name: String, getterFlags: Flags, setterFlags: Flags, output: (ProtoBuf.Property.Builder) -> Unit ): KmPropertyVisitor = object : KmPropertyVisitor() { @@ -236,7 +231,6 @@ fun writeProperty( } } -@DeprecatedVisitor private fun writeValueParameter( c: WriteContext, flags: Flags, name: String, output: (ProtoBuf.ValueParameter.Builder) -> Unit @@ -263,7 +257,6 @@ private fun writeValueParameter( } } -@DeprecatedVisitor private fun writeTypeAlias( c: WriteContext, flags: Flags, name: String, output: (ProtoBuf.TypeAlias.Builder) -> Unit @@ -300,7 +293,6 @@ private fun writeTypeAlias( } } -@DeprecatedVisitor private fun writeVersionRequirement( c: WriteContext, output: (Int) -> Unit ): KmVersionRequirementVisitor = object : KmVersionRequirementVisitor() { @@ -351,7 +343,6 @@ private fun writeVersionRequirement( } } -@DeprecatedVisitor @ExperimentalContracts private fun writeContract(c: WriteContext, output: (ProtoBuf.Contract.Builder) -> Unit): KmContractVisitor = object : KmContractVisitor() { @@ -365,7 +356,6 @@ private fun writeContract(c: WriteContext, output: (ProtoBuf.Contract.Builder) - } } -@DeprecatedVisitor @ExperimentalContracts private fun writeEffect( c: WriteContext, type: KmEffectType, invocationKind: KmEffectInvocationKind?, @@ -396,7 +386,6 @@ private fun writeEffect( } } -@DeprecatedVisitor @ExperimentalContracts private fun writeEffectExpression(c: WriteContext, output: (ProtoBuf.Expression.Builder) -> Unit): KmEffectExpressionVisitor = object : KmEffectExpressionVisitor() { @@ -434,7 +423,7 @@ private fun writeEffectExpression(c: WriteContext, output: (ProtoBuf.Expression. } } -@DeprecatedVisitor // TODO: this likely need to be rewritten directly or deprecated completely +@Deprecated(visitorApiMessage) open class ClassWriter(stringTable: StringTable, contextExtensions: List = emptyList()) : KmClassVisitor() { protected val t = ProtoBuf.Class.newBuilder()!! protected val c: WriteContext = WriteContext(stringTable, contextExtensions) @@ -508,7 +497,7 @@ open class ClassWriter(stringTable: StringTable, contextExtensions: List = emptyList()) : KmPackageVisitor() { protected val t = ProtoBuf.Package.newBuilder()!! protected val c: WriteContext = WriteContext(stringTable, contextExtensions) @@ -534,7 +523,7 @@ open class PackageWriter(stringTable: StringTable, contextExtensions: List = emptyList()) : KmModuleFragmentVisitor() { protected val t = ProtoBuf.PackageFragment.newBuilder()!! @@ -560,7 +549,7 @@ open class ModuleFragmentWriter(stringTable: StringTable, contextExtensions: Lis } } -@DeprecatedVisitor +@Deprecated(visitorApiMessage) open class LambdaWriter(stringTable: StringTable) : KmLambdaVisitor() { protected var t: ProtoBuf.Function.Builder? = null protected val c = WriteContext(stringTable) diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/internal/common/KotlinCommonMetadata.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/internal/common/KotlinCommonMetadata.kt index b6e5b01ab9d..6a47136dfbe 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/internal/common/KotlinCommonMetadata.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/internal/common/KotlinCommonMetadata.kt @@ -2,10 +2,10 @@ * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") package kotlinx.metadata.internal.common -import kotlinx.metadata.DeprecatedVisitor import kotlinx.metadata.KmModuleFragment import kotlinx.metadata.KmModuleFragmentVisitor import kotlinx.metadata.impl.accept @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.metadata.builtins.readBuiltinsPackageFragment import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl import java.io.ByteArrayInputStream -@DeprecatedVisitor +// TODO: decide what to with this piece class KotlinCommonMetadata private constructor(private val proto: ProtoBuf.PackageFragment) { fun toKmModuleFragment(): KmModuleFragment = KmModuleFragment().apply(this::accept) diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/nodes.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/nodes.kt index c01ddbd7933..d1d0a8b0498 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/nodes.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/nodes.kt @@ -33,7 +33,7 @@ interface KmDeclarationContainer { /** * Represents a Kotlin class. */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmClass : KmClassVisitor(), KmDeclarationContainer { /** * Class flags, consisting of [Flag.HAS_ANNOTATIONS], visibility flag, modality flag and [Flag.Class] flags. @@ -119,75 +119,75 @@ class KmClass : KmClassVisitor(), KmDeclarationContainer { private val extensions: List = MetadataExtensions.INSTANCES.map(MetadataExtensions::createClassExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visit(flags: Flags, name: ClassName) { this.flags = flags this.name = name } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitTypeParameter(flags: Flags, name: String, id: Int, variance: KmVariance): KmTypeParameterVisitor = KmTypeParameter(flags, name, id, variance).addTo(typeParameters) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitSupertype(flags: Flags): KmTypeVisitor = KmType(flags).addTo(supertypes) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitFunction(flags: Flags, name: String): KmFunctionVisitor = KmFunction(flags, name).addTo(functions) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitProperty(flags: Flags, name: String, getterFlags: Flags, setterFlags: Flags): KmPropertyVisitor = KmProperty(flags, name, getterFlags, setterFlags).addTo(properties) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitTypeAlias(flags: Flags, name: String): KmTypeAliasVisitor = KmTypeAlias(flags, name).addTo(typeAliases) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitConstructor(flags: Flags): KmConstructorVisitor = KmConstructor(flags).addTo(constructors) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitCompanionObject(name: String) { this.companionObject = name } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitNestedClass(name: String) { nestedClasses.add(name) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitEnumEntry(name: String) { enumEntries.add(name) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitSealedSubclass(name: ClassName) { sealedSubclasses.add(name) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitInlineClassUnderlyingPropertyName(name: String) { inlineClassUnderlyingPropertyName = name } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitInlineClassUnderlyingType(flags: Flags): KmTypeVisitor = KmType(flags).also { inlineClassUnderlyingType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) @ExperimentalContextReceivers override fun visitContextReceiverType(flags: Flags): KmTypeVisitor = KmType(flags).addTo(contextReceiverTypes) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitVersionRequirement(): KmVersionRequirementVisitor = KmVersionRequirement().addTo(versionRequirements) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmClassExtensionVisitor = extensions.singleOfType(type) @@ -196,7 +196,7 @@ class KmClass : KmClassVisitor(), KmDeclarationContainer { * * @param visitor the visitor which will visit data in this class */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) @OptIn(ExperimentalContextReceivers::class) fun accept(visitor: KmClassVisitor) { visitor.visit(flags, name) @@ -222,7 +222,7 @@ class KmClass : KmClassVisitor(), KmDeclarationContainer { /** * Represents a Kotlin package fragment, including single file facades and multi-file class parts. */ -@OptIn(DeprecatedVisitor::class) // TODO +@Suppress("DEPRECATION") class KmPackage : KmPackageVisitor(), KmDeclarationContainer { /** * Functions in the package fragment. @@ -242,19 +242,19 @@ class KmPackage : KmPackageVisitor(), KmDeclarationContainer { private val extensions: List = MetadataExtensions.INSTANCES.map(MetadataExtensions::createPackageExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitFunction(flags: Flags, name: String): KmFunctionVisitor = KmFunction(flags, name).addTo(functions) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitProperty(flags: Flags, name: String, getterFlags: Flags, setterFlags: Flags): KmPropertyVisitor = KmProperty(flags, name, getterFlags, setterFlags).addTo(properties) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitTypeAlias(flags: Flags, name: String): KmTypeAliasVisitor = KmTypeAlias(flags, name).addTo(typeAliases) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmPackageExtensionVisitor = extensions.singleOfType(type) @@ -263,7 +263,7 @@ class KmPackage : KmPackageVisitor(), KmDeclarationContainer { * * @param visitor the visitor which will visit data in this package fragment */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmPackageVisitor) { functions.forEach { visitor.visitFunction(it.flags, it.name)?.let(it::accept) } properties.forEach { visitor.visitProperty(it.flags, it.name, it.getterFlags, it.setterFlags)?.let(it::accept) } @@ -276,7 +276,7 @@ class KmPackage : KmPackageVisitor(), KmDeclarationContainer { /** * Represents a Kotlin module fragment. This is used to represent metadata of a part of a module on platforms other than JVM. */ -@OptIn(DeprecatedVisitor::class) // TODO +@Suppress("DEPRECATION") class KmModuleFragment : KmModuleFragmentVisitor() { /** @@ -292,15 +292,15 @@ class KmModuleFragment : KmModuleFragmentVisitor() { private val extensions: List = MetadataExtensions.INSTANCES.map(MetadataExtensions::createModuleFragmentExtensions) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitPackage(): KmPackageVisitor? = KmPackage().also { pkg = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmModuleFragmentExtensionVisitor? = extensions.singleOfType(type) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitClass(): KmClassVisitor? = KmClass().addTo(classes) @@ -309,7 +309,7 @@ class KmModuleFragment : KmModuleFragmentVisitor() { * * @param visitor the visitor which will visit data in the module fragment. */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmModuleFragmentVisitor) { pkg?.let { visitor.visitPackage()?.let(it::accept) } classes.forEach { visitor.visitClass()?.let(it::accept) } @@ -321,14 +321,14 @@ class KmModuleFragment : KmModuleFragmentVisitor() { /** * Represents a synthetic class generated for a Kotlin lambda. */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmLambda : KmLambdaVisitor() { /** * Signature of the synthetic anonymous function, representing the lambda. */ lateinit var function: KmFunction - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitFunction(flags: Flags, name: String): KmFunctionVisitor = KmFunction(flags, name).also { function = it } @@ -337,7 +337,7 @@ class KmLambda : KmLambdaVisitor() { * * @param visitor the visitor which will visit data in this lambda */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmLambdaVisitor) { visitor.visitFunction(function.flags, function.name)?.let(function::accept) visitor.visitEnd() @@ -349,7 +349,7 @@ class KmLambda : KmLambdaVisitor() { * * @property flags constructor flags, consisting of [Flag.HAS_ANNOTATIONS], visibility flag and [Flag.Constructor] flags */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmConstructor(var flags: Flags) : KmConstructorVisitor() { /** * Value parameters of the constructor. @@ -364,15 +364,15 @@ class KmConstructor(var flags: Flags) : KmConstructorVisitor() { private val extensions: List = MetadataExtensions.INSTANCES.map(MetadataExtensions::createConstructorExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitValueParameter(flags: Flags, name: String): KmValueParameterVisitor = KmValueParameter(flags, name).addTo(valueParameters) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitVersionRequirement(): KmVersionRequirementVisitor = KmVersionRequirement().addTo(versionRequirements) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmConstructorExtensionVisitor = extensions.singleOfType(type) @@ -381,7 +381,7 @@ class KmConstructor(var flags: Flags) : KmConstructorVisitor() { * * @param visitor the visitor which will visit data in this class */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmConstructorVisitor) { valueParameters.forEach { visitor.visitValueParameter(it.flags, it.name)?.let(it::accept) } versionRequirements.forEach { visitor.visitVersionRequirement()?.let(it::accept) } @@ -396,7 +396,7 @@ class KmConstructor(var flags: Flags) : KmConstructorVisitor() { * @property flags function flags, consisting of [Flag.HAS_ANNOTATIONS], visibility flag, modality flag and [Flag.Function] flags * @property name the name of the function */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmFunction( var flags: Flags, var name: String @@ -441,37 +441,37 @@ class KmFunction( private val extensions: List = MetadataExtensions.INSTANCES.map(MetadataExtensions::createFunctionExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitTypeParameter(flags: Flags, name: String, id: Int, variance: KmVariance): KmTypeParameterVisitor = KmTypeParameter(flags, name, id, variance).addTo(typeParameters) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitReceiverParameterType(flags: Flags): KmTypeVisitor = KmType(flags).also { receiverParameterType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) @ExperimentalContextReceivers override fun visitContextReceiverType(flags: Flags): KmTypeVisitor = KmType(flags).addTo(contextReceiverTypes) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitValueParameter(flags: Flags, name: String): KmValueParameterVisitor = KmValueParameter(flags, name).addTo(valueParameters) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitReturnType(flags: Flags): KmTypeVisitor = KmType(flags).also { returnType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitVersionRequirement(): KmVersionRequirementVisitor = KmVersionRequirement().addTo(versionRequirements) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) @ExperimentalContracts override fun visitContract(): KmContractVisitor = KmContract().also { contract = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmFunctionExtensionVisitor = extensions.singleOfType(type) @@ -481,7 +481,7 @@ class KmFunction( * @param visitor the visitor which will visit data in this function */ @OptIn(ExperimentalContextReceivers::class) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmFunctionVisitor) { typeParameters.forEach { visitor.visitTypeParameter(it.flags, it.name, it.id, it.variance)?.let(it::accept) } receiverParameterType?.let { visitor.visitReceiverParameterType(it.flags)?.let(it::accept) } @@ -505,7 +505,7 @@ class KmFunction( * @property setterFlags property accessor flags, consisting of [Flag.HAS_ANNOTATIONS], visibility flag, modality flag * and [Flag.PropertyAccessor] flags */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmProperty( var flags: Flags, var name: String, @@ -546,32 +546,32 @@ class KmProperty( private val extensions: List = MetadataExtensions.INSTANCES.map(MetadataExtensions::createPropertyExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitTypeParameter(flags: Flags, name: String, id: Int, variance: KmVariance): KmTypeParameterVisitor = KmTypeParameter(flags, name, id, variance).addTo(typeParameters) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitReceiverParameterType(flags: Flags): KmTypeVisitor = KmType(flags).also { receiverParameterType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) @ExperimentalContextReceivers override fun visitContextReceiverType(flags: Flags): KmTypeVisitor = KmType(flags).addTo(contextReceiverTypes) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitSetterParameter(flags: Flags, name: String): KmValueParameterVisitor = KmValueParameter(flags, name).also { setterParameter = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitReturnType(flags: Flags): KmTypeVisitor = KmType(flags).also { returnType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitVersionRequirement(): KmVersionRequirementVisitor = KmVersionRequirement().addTo(versionRequirements) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmPropertyExtensionVisitor = extensions.singleOfType(type) @@ -581,7 +581,7 @@ class KmProperty( * @param visitor the visitor which will visit data in this property */ @OptIn(ExperimentalContextReceivers::class) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmPropertyVisitor) { typeParameters.forEach { visitor.visitTypeParameter(it.flags, it.name, it.id, it.variance)?.let(it::accept) } receiverParameterType?.let { visitor.visitReceiverParameterType(it.flags)?.let(it::accept) } @@ -600,7 +600,7 @@ class KmProperty( * @property flags type alias flags, consisting of [Flag.HAS_ANNOTATIONS] and visibility flag * @property name the name of the type alias */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmTypeAlias( var flags: Flags, var name: String @@ -634,28 +634,28 @@ class KmTypeAlias( private val extensions: List = MetadataExtensions.INSTANCES.mapNotNull(MetadataExtensions::createTypeAliasExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitTypeParameter(flags: Flags, name: String, id: Int, variance: KmVariance): KmTypeParameterVisitor = KmTypeParameter(flags, name, id, variance).addTo(typeParameters) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitUnderlyingType(flags: Flags): KmTypeVisitor = KmType(flags).also { underlyingType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExpandedType(flags: Flags): KmTypeVisitor = KmType(flags).also { expandedType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitAnnotation(annotation: KmAnnotation) { annotations.add(annotation) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmTypeAliasExtensionVisitor? = extensions.singleOfType(type) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitVersionRequirement(): KmVersionRequirementVisitor = KmVersionRequirement().addTo(versionRequirements) @@ -664,7 +664,7 @@ class KmTypeAlias( * * @param visitor the visitor which will visit data in this type alias */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmTypeAliasVisitor) { typeParameters.forEach { visitor.visitTypeParameter(it.flags, it.name, it.id, it.variance)?.let(it::accept) } visitor.visitUnderlyingType(underlyingType.flags)?.let(underlyingType::accept) @@ -682,7 +682,7 @@ class KmTypeAlias( * @property flags value parameter flags, consisting of [Flag.ValueParameter] flags * @property name the name of the value parameter */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmValueParameter( var flags: Flags, var name: String @@ -701,15 +701,15 @@ class KmValueParameter( private val extensions: List = MetadataExtensions.INSTANCES.mapNotNull(MetadataExtensions::createValueParameterExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitType(flags: Flags): KmTypeVisitor = KmType(flags).also { type = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitVarargElementType(flags: Flags): KmTypeVisitor = KmType(flags).also { varargElementType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmValueParameterExtensionVisitor? = extensions.singleOfType(type) @@ -718,7 +718,7 @@ class KmValueParameter( * * @param visitor the visitor which will visit data in this value parameter */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmValueParameterVisitor) { visitor.visitType(type.flags)?.let(type::accept) varargElementType?.let { visitor.visitVarargElementType(it.flags)?.let(it::accept) } @@ -736,7 +736,7 @@ class KmValueParameter( * the name isn't enough (e.g. `class A { fun foo(t: T) }`) * @property variance the declaration-site variance of the type parameter */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmTypeParameter( var flags: Flags, var name: String, @@ -751,11 +751,11 @@ class KmTypeParameter( private val extensions: List = MetadataExtensions.INSTANCES.map(MetadataExtensions::createTypeParameterExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitUpperBound(flags: Flags): KmTypeVisitor = KmType(flags).addTo(upperBounds) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmTypeParameterExtensionVisitor? = extensions.singleOfType(type) @@ -764,7 +764,7 @@ class KmTypeParameter( * * @param visitor the visitor which will visit data in this type parameter */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmTypeParameterVisitor) { upperBounds.forEach { visitor.visitUpperBound(it.flags)?.let(it::accept) } extensions.forEach { visitor.visitExtensions(it.type)?.let(it::accept) } @@ -777,7 +777,7 @@ class KmTypeParameter( * * @property flags type flags, consisting of [Flag.Type] flags */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmType(var flags: Flags) : KmTypeVisitor() { /** * Classifier of the type. @@ -822,43 +822,43 @@ class KmType(var flags: Flags) : KmTypeVisitor() { private val extensions: List = MetadataExtensions.INSTANCES.map(MetadataExtensions::createTypeExtension) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitClass(name: ClassName) { classifier = KmClassifier.Class(name) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitTypeAlias(name: ClassName) { classifier = KmClassifier.TypeAlias(name) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitTypeParameter(id: Int) { classifier = KmClassifier.TypeParameter(id) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitArgument(flags: Flags, variance: KmVariance): KmTypeVisitor = KmType(flags).also { arguments.add(KmTypeProjection(variance, it)) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitStarProjection() { arguments.add(KmTypeProjection.STAR) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitAbbreviatedType(flags: Flags): KmTypeVisitor = KmType(flags).also { abbreviatedType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitOuterType(flags: Flags): KmTypeVisitor = KmType(flags).also { outerType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitFlexibleTypeUpperBound(flags: Flags, typeFlexibilityId: String?): KmTypeVisitor = KmType(flags).also { flexibleTypeUpperBound = KmFlexibleTypeUpperBound(it, typeFlexibilityId) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitExtensions(type: KmExtensionType): KmTypeExtension = extensions.singleOfType(type) @@ -867,7 +867,7 @@ class KmType(var flags: Flags) : KmTypeVisitor() { * * @param visitor the visitor which will visit data in this type */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmTypeVisitor) { when (val classifier = classifier) { is KmClassifier.Class -> visitor.visitClass(classifier.name) @@ -897,7 +897,7 @@ class KmType(var flags: Flags) : KmTypeVisitor() { * Version requirement is an internal feature of the Kotlin compiler and the standard Kotlin library, * enabled for example with the internal [kotlin.internal.RequireKotlin] annotation. */ -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmVersionRequirement : KmVersionRequirementVisitor() { /** * Kind of the version that this declaration requires. @@ -924,7 +924,7 @@ class KmVersionRequirement : KmVersionRequirementVisitor() { */ lateinit var version: KmVersion - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visit(kind: KmVersionRequirementVersionKind, level: KmVersionRequirementLevel, errorCode: Int?, message: String?) { this.kind = kind this.level = level @@ -932,7 +932,7 @@ class KmVersionRequirement : KmVersionRequirementVisitor() { this.message = message } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitVersion(major: Int, minor: Int, patch: Int) { this.version = KmVersion(major, minor, patch) } @@ -942,7 +942,7 @@ class KmVersionRequirement : KmVersionRequirementVisitor() { * * @param visitor the visitor which will visit data in this version requirement */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmVersionRequirementVisitor) { visitor.visit(kind, level, errorCode, message) visitor.visitVersion(version.major, version.minor, version.patch) @@ -957,14 +957,14 @@ class KmVersionRequirement : KmVersionRequirementVisitor() { * may change in a subsequent release. */ @ExperimentalContracts -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmContract : KmContractVisitor() { /** * Effects of this contract. */ val effects: MutableList = ArrayList(1) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitEffect(type: KmEffectType, invocationKind: KmEffectInvocationKind?): KmEffectVisitor = KmEffect(type, invocationKind).addTo(effects) @@ -973,7 +973,7 @@ class KmContract : KmContractVisitor() { * * @param visitor the visitor which will visit data in this contract */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmContractVisitor) { effects.forEach { visitor.visitEffect(it.type, it.invocationKind)?.let(it::accept) } visitor.visitEnd() @@ -991,7 +991,7 @@ class KmContract : KmContractVisitor() { * specified further in the effect expression */ @ExperimentalContracts -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmEffect( var type: KmEffectType, var invocationKind: KmEffectInvocationKind? @@ -1007,11 +1007,11 @@ class KmEffect( */ var conclusion: KmEffectExpression? = null - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitConstructorArgument(): KmEffectExpressionVisitor = KmEffectExpression().addTo(constructorArguments) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitConclusionOfConditionalEffect(): KmEffectExpressionVisitor = KmEffectExpression().also { conclusion = it } @@ -1020,7 +1020,7 @@ class KmEffect( * * @param visitor the visitor which will visit data in this effect */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmEffectVisitor) { constructorArguments.forEach { visitor.visitConstructorArgument()?.let(it::accept) } conclusion?.let { visitor.visitConclusionOfConditionalEffect()?.let(it::accept) } @@ -1035,7 +1035,7 @@ class KmEffect( * may change in a subsequent release. */ @ExperimentalContracts -@OptIn(DeprecatedVisitor::class) +@Suppress("DEPRECATION") class KmEffectExpression : KmEffectExpressionVisitor() { /** * Effect expression flags, consisting of [Flag.EffectExpression] flags. @@ -1070,26 +1070,26 @@ class KmEffectExpression : KmEffectExpressionVisitor() { */ val orArguments: MutableList = ArrayList(0) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visit(flags: Flags, parameterIndex: Int?) { this.flags = flags this.parameterIndex = parameterIndex } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitConstantValue(value: Any?) { constantValue = KmConstantValue(value) } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitIsInstanceType(flags: Flags): KmTypeVisitor = KmType(flags).also { isInstanceType = it } - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitAndArgument(): KmEffectExpressionVisitor = KmEffectExpression().addTo(andArguments) - @DeprecatedVisitor + @Deprecated(visitorApiMessage) override fun visitOrArgument(): KmEffectExpressionVisitor = KmEffectExpression().addTo(orArguments) @@ -1098,7 +1098,7 @@ class KmEffectExpression : KmEffectExpressionVisitor() { * * @param visitor the visitor which will visit data in this effect expression */ - @DeprecatedVisitor + @Deprecated(visitorApiMessage) fun accept(visitor: KmEffectExpressionVisitor) { visitor.visit(flags, parameterIndex) constantValue?.let { visitor.visitConstantValue(it.value) } diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/visitors.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/visitors.kt index 055bc6a19f7..e8d2983cf1b 100644 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/visitors.kt +++ b/libraries/kotlinx-metadata/src/kotlinx/metadata/visitors.kt @@ -7,13 +7,14 @@ package kotlinx.metadata import kotlin.contracts.ExperimentalContracts -@RequiresOptIn("Visitor API is deprecated. Please do not use", RequiresOptIn.Level.ERROR) -annotation class DeprecatedVisitor +internal const val visitorApiMessage = + "Visitor API is deprecated as excessive and cumbersome. Please use nodes (such as KmClass) and their properties." /** * A visitor containing the common code to visit Kotlin declaration containers, such as classes and package fragments. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmDeclarationContainerVisitor @JvmOverloads constructor(protected open val delegate: KmDeclarationContainerVisitor? = null) { /** * Visits a function in the container. @@ -60,7 +61,8 @@ abstract class KmDeclarationContainerVisitor @JvmOverloads constructor(protected * When using this class, [visit] must be called first, followed by zero or more [visitTypeParameter] calls, followed by zero or more calls * to other visit* methods, followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmClassVisitor @JvmOverloads constructor(delegate: KmClassVisitor? = null) : KmDeclarationContainerVisitor(delegate) { override val delegate: KmClassVisitor? get() = super.delegate as KmClassVisitor? @@ -192,7 +194,8 @@ abstract class KmClassVisitor @JvmOverloads constructor(delegate: KmClassVisitor * * When using this class, [visitEnd] must be called exactly once and after calls to all other visit* methods. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmPackageVisitor @JvmOverloads constructor(delegate: KmPackageVisitor? = null) : KmDeclarationContainerVisitor(delegate) { override val delegate: KmPackageVisitor? get() = super.delegate as KmPackageVisitor? @@ -219,7 +222,8 @@ abstract class KmPackageVisitor @JvmOverloads constructor(delegate: KmPackageVis * * When using this class, [visitEnd] must be called exactly once and after calls to all other visit* methods. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmModuleFragmentVisitor @JvmOverloads constructor(private val delegate: KmModuleFragmentVisitor? = null) { /** @@ -255,7 +259,8 @@ abstract class KmModuleFragmentVisitor @JvmOverloads constructor(private val del * * When using this class, [visitFunction] must be called first, followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmLambdaVisitor @JvmOverloads constructor(private val delegate: KmLambdaVisitor? = null) { /** * Visits the signature of a synthetic anonymous function, representing the lambda. @@ -279,7 +284,8 @@ abstract class KmLambdaVisitor @JvmOverloads constructor(private val delegate: K * * When using this class, [visitEnd] must be called exactly once and after calls to all other visit* methods. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmConstructorVisitor @JvmOverloads constructor(private val delegate: KmConstructorVisitor? = null) { /** * Visits a value parameter of the constructor. @@ -318,7 +324,8 @@ abstract class KmConstructorVisitor @JvmOverloads constructor(private val delega * When using this class, zero or more calls to [visitTypeParameter] must be done first, followed by zero or more calls * to other visit* methods, followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmFunctionVisitor @JvmOverloads constructor(private val delegate: KmFunctionVisitor? = null) { /** * Visits a type parameter of the function. @@ -401,7 +408,8 @@ abstract class KmFunctionVisitor @JvmOverloads constructor(private val delegate: * When using this class, zero or more calls to [visitTypeParameter] must be done first, followed by zero or more calls * to other visit* methods, followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmPropertyVisitor @JvmOverloads constructor(private val delegate: KmPropertyVisitor? = null) { /** * Visits a type parameter of the property. @@ -477,7 +485,8 @@ abstract class KmPropertyVisitor @JvmOverloads constructor(private val delegate: * When using this class, zero or more calls to [visitTypeParameter] must be done first, followed by zero or more calls * to other visit* methods, followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmTypeAliasVisitor @JvmOverloads constructor(private val delegate: KmTypeAliasVisitor? = null) { /** * Visits a type parameter of the type alias. @@ -545,7 +554,8 @@ abstract class KmTypeAliasVisitor @JvmOverloads constructor(private val delegate * When using this class, either [visitType] or [visitVarargElementType] must be called first (depending on whether the value parameter * is `vararg` or not), followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmValueParameterVisitor @JvmOverloads constructor(private val delegate: KmValueParameterVisitor? = null) { /** * Visits the type of the value parameter, if this is **not** a `vararg` parameter. @@ -584,7 +594,8 @@ abstract class KmValueParameterVisitor @JvmOverloads constructor(private val del * * When using this class, zero or more [visitUpperBound] calls must be done first, followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmTypeParameterVisitor @JvmOverloads constructor(private val delegate: KmTypeParameterVisitor? = null) { /** * Visits the upper bound of the type parameter. @@ -621,7 +632,8 @@ abstract class KmTypeParameterVisitor @JvmOverloads constructor(private val dele * * When using this class, [visitEnd] must be called exactly once and after calls to all other visit* methods. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") abstract class KmTypeVisitor @JvmOverloads constructor(private val delegate: KmTypeVisitor? = null) { /** * Visits the name of the class, if this type's classifier is a class. @@ -733,8 +745,8 @@ abstract class KmTypeVisitor @JvmOverloads constructor(private val delegate: KmT * * When using this class, [visit] must be called first, followed by [visitVersion], followed by [visitEnd]. */ -@DeprecatedVisitor -abstract class KmVersionRequirementVisitor @JvmOverloads constructor(private val delegate: KmVersionRequirementVisitor? = null) { +@Deprecated(visitorApiMessage) +abstract class KmVersionRequirementVisitor @JvmOverloads constructor(@Suppress("DEPRECATION") private val delegate: KmVersionRequirementVisitor? = null) { /** * Visits the description of this version requirement. * @@ -775,7 +787,8 @@ abstract class KmVersionRequirementVisitor @JvmOverloads constructor(private val * * When using this class, zero or more calls to [visitEffect] must be done first, followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") @ExperimentalContracts abstract class KmContractVisitor @JvmOverloads constructor(private val delegate: KmContractVisitor? = null) { /** @@ -805,7 +818,8 @@ abstract class KmContractVisitor @JvmOverloads constructor(private val delegate: * When using this class, zero or more calls to [visitConstructorArgument] or [visitConclusionOfConditionalEffect] must be done first, * followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") @ExperimentalContracts abstract class KmEffectVisitor @JvmOverloads constructor(private val delegate: KmEffectVisitor? = null) { /** @@ -838,7 +852,8 @@ abstract class KmEffectVisitor @JvmOverloads constructor(private val delegate: K * * When using this class, [visit] must be called first, followed by zero or more calls to other visit* methods, followed by [visitEnd]. */ -@DeprecatedVisitor +@Deprecated(visitorApiMessage) +@Suppress("DEPRECATION") @ExperimentalContracts abstract class KmEffectExpressionVisitor @JvmOverloads constructor(private val delegate: KmEffectExpressionVisitor? = null) { /** diff --git a/libraries/tools/kotlinp/test/org/jetbrains/kotlin/kotlinp/test/KotlinpTestUtils.kt b/libraries/tools/kotlinp/test/org/jetbrains/kotlin/kotlinp/test/KotlinpTestUtils.kt index 3355d618eb5..f11bc1151d6 100644 --- a/libraries/tools/kotlinp/test/org/jetbrains/kotlin/kotlinp/test/KotlinpTestUtils.kt +++ b/libraries/tools/kotlinp/test/org/jetbrains/kotlin/kotlinp/test/KotlinpTestUtils.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.kotlinp.test import com.intellij.openapi.Disposable import junit.framework.TestCase.assertEquals -import kotlinx.metadata.DeprecatedVisitor import kotlinx.metadata.jvm.KotlinClassMetadata import kotlinx.metadata.jvm.KotlinModuleMetadata import org.jetbrains.kotlin.checkers.setupLanguageVersionSettingsForCompilerTests @@ -26,7 +25,6 @@ import org.jetbrains.kotlin.test.util.KtTestUtil import java.io.File import kotlin.test.fail -@OptIn(DeprecatedVisitor::class) fun compileAndPrintAllFiles(file: File, disposable: Disposable, tmpdir: File, compareWithTxt: Boolean, readWriteAndCompare: Boolean) { val main = StringBuilder() val afterVisitors = StringBuilder() @@ -99,8 +97,7 @@ private fun StringBuilder.appendFileName(file: File) { // Reads the class file and writes it back with *Writer visitors. // The resulting class file should be the same from the point of view of any metadata reader, including kotlinp // (the exact bytes may differ though, because there are multiple ways to encode the same metadata) -@Suppress("DEPRECATION_ERROR") -@DeprecatedVisitor // TODO: not sure this test is needed at all now +@Suppress("DEPRECATION") private fun transformClassFileWithReadWriteVisitors(classFile: KotlinClassMetadata): KotlinClassMetadata = when (classFile) { is KotlinClassMetadata.Class -> KotlinClassMetadata.Class.Writer().apply(classFile::accept).write() @@ -132,8 +129,7 @@ private fun transformClassFileWithNodes(classFile: KotlinClassMetadata): KotlinC else -> classFile } -@Suppress("DEPRECATION_ERROR") -@DeprecatedVisitor +@Suppress("DEPRECATION") private fun transformModuleFileWithReadWriteVisitors(moduleFile: KotlinModuleMetadata): KotlinModuleMetadata = KotlinModuleMetadata.Writer().apply(moduleFile::accept).write() diff --git a/plugins/jvm-abi-gen/src/org/jetbrains/kotlin/jvm/abi/JvmAbiMetadataProcessor.kt b/plugins/jvm-abi-gen/src/org/jetbrains/kotlin/jvm/abi/JvmAbiMetadataProcessor.kt index dceb8335d58..a8a2de0d281 100644 --- a/plugins/jvm-abi-gen/src/org/jetbrains/kotlin/jvm/abi/JvmAbiMetadataProcessor.kt +++ b/plugins/jvm-abi-gen/src/org/jetbrains/kotlin/jvm/abi/JvmAbiMetadataProcessor.kt @@ -18,7 +18,6 @@ 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 @@ -137,7 +136,7 @@ private fun AnnotationVisitor.visitKotlinMetadata(header: KotlinClassHeader) { * Class metadata adapter which removes private functions, properties, type aliases, * and local delegated properties. */ -@DeprecatedVisitor +@Suppress("DEPRECATION") private class AbiKmClassVisitor(delegate: KmClassVisitor) : KmClassVisitor(delegate) { override fun visitConstructor(flags: Flags): KmConstructorVisitor? { if (!isPrivateDeclaration(flags)) @@ -174,7 +173,7 @@ private class AbiKmClassVisitor(delegate: KmClassVisitor) : KmClassVisitor(deleg * Class metadata adapter which removes private functions, properties, type aliases, * and local delegated properties. */ -@DeprecatedVisitor +@Suppress("DEPRECATION") private class AbiKmPackageVisitor(delegate: KmPackageVisitor) : KmPackageVisitor(delegate) { override fun visitFunction(flags: Flags, name: String): KmFunctionVisitor? { if (!isPrivateDeclaration(flags))