Class KotlinPropertyFlags

java.lang.Object
proguard.classfile.kotlin.flags.KotlinPropertyFlags
All Implemented Interfaces:
KotlinFlags

public class KotlinPropertyFlags extends Object implements KotlinFlags
Flags for Kotlin properties.

Valid common flags: - isInternal - isPrivate - isProtected - isPublic - isPrivateToThis - isLocal - isFinal - isOpen - isAbstract - isSealed

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    boolean
    Deprecated.
    boolean
    Indicates that the corresponding property has at least one annotation in the JVM bytecode.
    boolean
    Signifies that the corresponding property has a constant value.
    boolean
    Signifies that the corresponding property is `const`.
    boolean
    A member kind flag, signifying that the corresponding property is explicitly declared in the containing class.
    boolean
    Signifies that the corresponding property is a delegated property.
    boolean
    A member kind flag, signifying that the corresponding property exists in the containing class because it has been produced by interface delegation (delegation "by").
    boolean
    Signifies that the corresponding property is `expect`.
    boolean
    Signifies that the corresponding property is `external`.
    boolean
    A member kind flag, signifying that the corresponding property exists in the containing class because a property with a suitable signature exists in a supertype.
    boolean
    Signifies that the corresponding property is `lateinit`.
    boolean
    Signifies that its backing field is declared as a static field in an interface, usually happens when @JvmField annotation is used e.g.
    boolean
    A member kind flag, signifying that the corresponding property exists in the containing class because it has been synthesized by the compiler and has no declaration in the source code.
    boolean
    Signifies that the corresponding property is `var`.
     
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • visibility

      public final KotlinVisibilityFlags visibility
    • modality

      public final KotlinModalityFlags modality
    • isDeclared

      public boolean isDeclared
      A member kind flag, signifying that the corresponding property is explicitly declared in the containing class.
    • isFakeOverride

      public boolean isFakeOverride
      A member kind flag, signifying that the corresponding property exists in the containing class because a property with a suitable signature exists in a supertype. This flag is not written by the Kotlin compiler and its effects are unspecified.
    • isDelegation

      public boolean isDelegation
      A member kind flag, signifying that the corresponding property exists in the containing class because it has been produced by interface delegation (delegation "by"). Kotlinc never writes this flag.
    • isSynthesized

      public boolean isSynthesized
      A member kind flag, signifying that the corresponding property exists in the containing class because it has been synthesized by the compiler and has no declaration in the source code.
    • isVar

      public boolean isVar
      Signifies that the corresponding property is `var`.
    • isConst

      public boolean isConst
      Signifies that the corresponding property is `const`.
    • isLateinit

      public boolean isLateinit
      Signifies that the corresponding property is `lateinit`.
    • hasConstant

      public boolean hasConstant
      Signifies that the corresponding property has a constant value. On JVM, this flag allows an optimization similarly to [F.HAS_ANNOTATIONS]: constant values of properties are written to the bytecode directly, and this flag can be used to avoid reading the value from the bytecode in case there isn't one.
    • isExternal

      public boolean isExternal
      Signifies that the corresponding property is `external`.
    • isDelegated

      public boolean isDelegated
      Signifies that the corresponding property is a delegated property.
    • isExpect

      public boolean isExpect
      Signifies that the corresponding property is `expect`.
    • isMovedFromInterfaceCompanion

      public boolean isMovedFromInterfaceCompanion
      Signifies that its backing field is declared as a static field in an interface, usually happens when @JvmField annotation is used e.g.

      interface A { companion object { @JvmField val s:String = "string" } }

    • hasAnnotationsInBytecode

      public boolean hasAnnotationsInBytecode
      Indicates that the corresponding property has at least one annotation in the JVM bytecode.

      Before annotations in metadata are enabled by default in the Kotlin compiler (https://youtrack.jetbrains.com/issue/KT-75736), annotations are only generated in the JVM bytecode. The compiler writes and reads this flag to metadata as an optimization, to avoid parsing class file one additional time when it's not needed.

      Only annotations with [AnnotationRetention.BINARY] and [AnnotationRetention.RUNTIME] are written to the class files.

    • hasAnnotations

      @Deprecated public boolean hasAnnotations
      Deprecated.
  • Constructor Details