ClassLiteralValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface ClassLiteralValue : KaAnnotationValue
A class literal annotation value, such as String::class or Array<String>::class.
Properties¶
classId¶
abstract val classId: ClassId?
The referenced ClassId, if available.
The property is useful for error handling, as KaClassErrorType currently does not provide a ClassId.
sourcePsi¶
The KtElement underlying the annotation value. This is only defined for annotations in source files. For libraries, it is always null.
token¶
abstract val token: KaLifetimeToken
The KaLifetimeToken which determines the lifetime of the lifetime owner.
type¶
The KaType of the class reference, such as String for the String::class reference.
Functions¶
assertIsValidAndAccessible¶
inline fun KaLifetimeOwner.assertIsValidAndAccessible()
isValid¶
fun KaLifetimeOwner.isValid(): Boolean
Whether the lifetime owner is still valid, i.e. we are still in the scope of the lifetime owner's regular lifetime.
renderAsSourceCode¶
Renders the annotation value as valid Kotlin source code.
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.