Metadata
@Target([AnnotationTarget.CLASS]) annotation class Metadata
This annotation is present on any class file produced by the Kotlin compiler and is read by the compiler and reflection. Parameters have very short JVM names on purpose: these names appear in all generated class files, and we'd like to reduce their size.
Constructors
<init>
This annotation is present on any class file produced by the Kotlin compiler and is read by the compiler and reflection. Parameters have very short JVM names on purpose: these names appear in all generated class files, and we'd like to reduce their size.
Properties
bytecodeVersion
The version of the bytecode interface (naming conventions, signatures) of the class file annotated with this annotation.
val bytecodeVersion: IntArray
data1
Metadata in a custom format. The format may be different (or even absent) for different kinds.
val data1: Array<String>
data2
An addition to d1: array of strings which occur in metadata, written in plain text so that strings already present in the constant pool are reused. These strings may be then indexed in the metadata by an integer index in this array.
val data2: Array<String>
extraInt
An extra int. Bits of this number represent the following flags:
val extraInt: Int
extraString
An extra string. For a multi-file part class, internal name of the facade class.
val extraString: String
kind
A kind of the metadata this annotation encodes. Kotlin compiler recognizes the following kinds (see KotlinClassHeader.Kind):
val kind: Int
metadataVersion
The version of the metadata provided in the arguments of this annotation.
val metadataVersion: IntArray
packageName
Fully qualified name of the package this class is located in, from Kotlin's point of view, or empty string if this name
does not differ from the JVM's package FQ name. These names can be different in case the JvmPackageName annotation is used.
Note that this information is also stored in the corresponding module's .kotlin_module
file.
val packageName: String