KaSmartCastedReceiverValue¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface KaSmartCastedReceiverValue : KaReceiverValue
A smart-casted receiver value.
Example¶
length has a smart-casted receiver value of type String. Its original is an implicit receiver which is bound to the KaReceiverParameterSymbol for the extension receiver of test.
Properties¶
original¶
abstract val original: KaReceiverValue
The original KaReceiverValue to which the smart cast was applied.
token¶
abstract val token: KaLifetimeToken
The KaLifetimeToken which determines the lifetime of the lifetime owner.
type¶
The inferred KaType of the receiver. This is a smart-casted type in the case of a smart cast on the receiver.
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.
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.