Package proguard.classfile.kotlin.flags
Class KotlinPropertyFlags
java.lang.Object
proguard.classfile.kotlin.flags.KotlinPropertyFlags
- All Implemented Interfaces:
KotlinFlags
Flags for Kotlin properties.
Valid common flags: - isInternal - isPrivate - isProtected - isPublic - isPrivateToThis - isLocal - isFinal - isOpen - isAbstract - isSealed
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanDeprecated.booleanIndicates that the corresponding property has at least one annotation in the JVM bytecode.booleanSignifies that the corresponding property has a constant value.booleanSignifies that the corresponding property is `const`.booleanA member kind flag, signifying that the corresponding property is explicitly declared in the containing class.booleanSignifies that the corresponding property is a delegated property.booleanA member kind flag, signifying that the corresponding property exists in the containing class because it has been produced by interface delegation (delegation "by").booleanSignifies that the corresponding property is `expect`.booleanSignifies that the corresponding property is `external`.booleanA member kind flag, signifying that the corresponding property exists in the containing class because a property with a suitable signature exists in a supertype.booleanSignifies that the corresponding property is `lateinit`.booleanSignifies that its backing field is declared as a static field in an interface, usually happens when @JvmField annotation is used e.g.booleanA 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.booleanSignifies that the corresponding property is `var`.final KotlinModalityFlagsfinal KotlinVisibilityFlags -
Constructor Summary
ConstructorsConstructorDescriptionKotlinPropertyFlags(KotlinVisibilityFlags visibility, KotlinModalityFlags modality) -
Method Summary
-
Field Details
-
visibility
-
modality
-
isDeclared
public boolean isDeclaredA member kind flag, signifying that the corresponding property is explicitly declared in the containing class. -
isFakeOverride
public boolean isFakeOverrideA 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 isDelegationA 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 isSynthesizedA 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 isVarSignifies that the corresponding property is `var`. -
isConst
public boolean isConstSignifies that the corresponding property is `const`. -
isLateinit
public boolean isLateinitSignifies that the corresponding property is `lateinit`. -
hasConstant
public boolean hasConstantSignifies 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 isExternalSignifies that the corresponding property is `external`. -
isDelegated
public boolean isDelegatedSignifies that the corresponding property is a delegated property. -
isExpect
public boolean isExpectSignifies that the corresponding property is `expect`. -
isMovedFromInterfaceCompanion
public boolean isMovedFromInterfaceCompanionSignifies 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 hasAnnotationsInBytecodeIndicates 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.
-
-
Constructor Details
-
KotlinPropertyFlags
-