Skip to content

KaNamedAnnotationValue

A name/value pair representing an annotation argument.

Example

annotation class Foo(val bar: String)

@Foo(bar = "abc")
fun foo() {}

The annotation application @Foo(bar = "abc") has a single KaNamedAnnotationValue bar = "abc", with the name "bar" and a KaAnnotationValue.ConstantValue representing the String constant "abc".

Properties

expression

The value of the annotation argument.

name

abstract val name: Name

The name of the annotation argument.

token

abstract val token: KaLifetimeToken

The KaLifetimeToken which determines the lifetime of the lifetime owner.

Functions

assertIsValidAndAccessible

isValid

Whether the lifetime owner is still valid, i.e. we are still in the scope of the lifetime owner's regular lifetime.

withValidityAssertion

inline fun <R> KaLifetimeOwner.withValidityAssertion(action: () -> R): R

Executes action only if the KaLifetimeOwner is still valid and accessible. Otherwise, throws a validity exception based on the concrete violation.