KaConstantValue¶
sealed interface KaConstantValue
Represents a compile-time constant value. It can be used as a const val initializer or as an annotation argument.
KaConstantValue can also represent evaluated values. For example, the constant expression 1 + 2 can be represented as an IntValue with a value 3.
Inheritors¶
Types¶
BooleanValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface BooleanValue : KaConstantValue
Represents a Boolean value.
ByteValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface ByteValue : KaConstantValue
Represents a Byte value.
CharValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface CharValue : KaConstantValue
Represents a Char value.
DoubleValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface DoubleValue : KaConstantValue
Represents a Double value.
ErrorValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface ErrorValue : KaConstantValue
Represents either a non-constant value, or a constant evaluation error (such as a division by zero).
FloatValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface FloatValue : KaConstantValue
Represents a Float value.
IntValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface IntValue : KaConstantValue
Represents an Int value.
LongValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface LongValue : KaConstantValue
Represents a Long value.
NullValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface NullValue : KaConstantValue
Represents a null value of some class type.
ShortValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface ShortValue : KaConstantValue
Represents a Short value.
StringValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface StringValue : KaConstantValue
Represents a String value.
UByteValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface UByteValue : KaConstantValue
Represents a UByte value.
UIntValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface UIntValue : KaConstantValue
Represents a UInt value.
ULongValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface ULongValue : KaConstantValue
Represents a ULong value.
UShortValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface UShortValue : KaConstantValue
Represents a UShort value.
Properties¶
sourcePsi¶
A source element from which the value was created. The PSI might be null for constants from non-source files.
value¶
The value of the constant. The type of value matches its represented class, e.g. BooleanValue.value is a Boolean.
For NullValue and ErrorValue, value contains a special value.
Functions¶
render¶
Renders the value as a representable constant value String, such as 1, 2f, 3u null, "text".