Class KotlinMetadata

java.lang.Object
proguard.util.SimpleProcessable
proguard.classfile.kotlin.KotlinMetadata
All Implemented Interfaces:
Serializable, Processable
Direct Known Subclasses:
KotlinDeclarationContainerMetadata, KotlinMultiFileFacadeKindMetadata, KotlinSyntheticClassKindMetadata, UnsupportedKotlinMetadata

public abstract class KotlinMetadata extends SimpleProcessable
This abstract class represents metadata that is attached to a Kotlin class, parsed from its @Metadata tag.

Documentation on the different fields is copied from: https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/jvm/runtime/kotlin/Metadata.kt

See Also:
  • Field Details

    • k

      public int k
      A kind of the metadata this annotation encodes. Kotlin compiler recognizes the following kinds (see KotlinClassHeader.Kind):

      1 Class 2 File 3 Synthetic class 4 Multi-file class facade 5 Multi-file class part

      The class file with a kind not listed here is treated as a non-Kotlin file.

    • mv

      public int[] mv
      The version of the metadata provided in the arguments of this annotation.
    • xi

      public int xi
      An extra int. Bits of this number represent the following flags:

      * 0 - this is a multi-file class facade or part, compiled with `-Xmultifile-parts-inherit`. * 1 - this class file is compiled by a pre-release version of Kotlin and is not visible to release versions. * 2 - this class file is a compiled Kotlin script source file (.kts). * 3 - the metadata of this class file is not supposed to be read by the compiler, whose major.minor version is less than the major.minor version of this metadata ([mv]).

    • xs

      public String xs
      An extra string. For a multi-file part class, internal name of the facade class.
    • pn

      public String pn
      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.
  • Constructor Details

    • KotlinMetadata

      protected KotlinMetadata(int k, int[] mv, int xi, String xs, String pn)
  • Method Details