Use standard @Deprecated in place of special opt-in annotation
Remove @DeprecatedVisitor
This commit is contained in:
committed by
Space Team
parent
c4d409608c
commit
474ef921d8
@@ -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<String>, 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."
|
||||
@@ -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<KmClass> = ArrayList(0)
|
||||
|
||||
@DeprecatedVisitor
|
||||
@Deprecated(visitorApiMessage)
|
||||
override fun visitPackageParts(fqName: String, fileFacades: List<String>, multiFileClassParts: Map<String, String>) {
|
||||
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)
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -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<KmProperty> = ArrayList(0)
|
||||
var moduleName: String? = null
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
+1
-10
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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) =
|
||||
|
||||
@@ -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<WriteContextExtension> = emptyList()
|
||||
|
||||
+1
@@ -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
|
||||
|
||||
|
||||
@@ -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<out KmExtensionVisitor>) {
|
||||
/**
|
||||
* 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
|
||||
|
||||
+2
-1
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<ProtoBuf.Function>,
|
||||
properties: List<ProtoBuf.Property>,
|
||||
@@ -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(
|
||||
|
||||
@@ -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<Wr
|
||||
strings.getClassNameIndex(name)
|
||||
}
|
||||
|
||||
@DeprecatedVisitor
|
||||
private fun writeTypeParameter(
|
||||
c: WriteContext, flags: Flags, name: String, id: Int, variance: KmVariance,
|
||||
output: (ProtoBuf.TypeParameter.Builder) -> 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<WriteContextExtension> = 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<WriteCo
|
||||
}
|
||||
}
|
||||
|
||||
@DeprecatedVisitor // TODO: this likely need to be rewritten directly
|
||||
@Deprecated(visitorApiMessage)
|
||||
open class PackageWriter(stringTable: StringTable, contextExtensions: List<WriteContextExtension> = 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<Write
|
||||
}
|
||||
}
|
||||
|
||||
@DeprecatedVisitor // TODO: this likely need to be rewritten directly
|
||||
@Deprecated(visitorApiMessage)
|
||||
open class ModuleFragmentWriter(stringTable: StringTable, contextExtensions: List<WriteContextExtension> = 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)
|
||||
|
||||
+2
-2
@@ -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)
|
||||
|
||||
@@ -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<KmClassExtension> =
|
||||
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<KmPackageExtension> =
|
||||
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<KmModuleFragmentExtension> =
|
||||
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<KmConstructorExtension> =
|
||||
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<KmFunctionExtension> =
|
||||
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<KmPropertyExtension> =
|
||||
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<KmTypeAliasExtension> =
|
||||
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<KmValueParameterExtension> =
|
||||
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<T> { fun <T> 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<KmTypeParameterExtension> =
|
||||
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<KmTypeExtension> =
|
||||
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<KmEffect> = 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<KmEffectExpression> = 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) }
|
||||
|
||||
@@ -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) {
|
||||
/**
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user