Skip to content

KaImplicitReceiver

Represents an implicit receiver available in a particular context.

Properties

label

abstract val label: String?

A label for the implicit receiver, if any.

If not null, this@$label can be used to refer to the implicit receiver.

Will be null if shadowed by another receiver with the same label at a lower index in the scope tower.

ownerSymbol

abstract override val ownerSymbol: KaSymbol

The implicit value owner.

scopeIndexInTower

abstract override val scopeIndexInTower: Int

The index of the scope in the scope tower where the implicit value is declared.

token

abstract val token: KaLifetimeToken

The KaLifetimeToken which determines the lifetime of the lifetime owner.

type

abstract override val type: KaType

The implicit value type.

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.