KaCallableMemberCall¶
sealed interface KaCallableMemberCall<S : KaCallableSymbol, C : KaCallableSignature<S>> : KaCall
A call to a function, or a simple/compound access to a property.
Inheritors¶
Properties¶
partiallyAppliedSymbol¶
abstract val partiallyAppliedSymbol: KaPartiallyAppliedSymbol<S, C>
A symbol wrapper for the callee, containing a substituted declaration signature (parameter types for functions, return type for functions and properties), and the actual dispatch receiver.
symbol¶
val <S : KaCallableSymbol, C : KaCallableSignature<S>> KaCallableMemberCall<S, C>.symbol: S
The KaCallableSymbol of the KaCallableMemberCall's callee.
val <S : KaCallableSymbol, C : KaCallableSignature<S>> KaSimpleCall<S, C>.symbol: S
The resolved KaCallableSymbol of the KaSimpleCall.
This is a short-cut for KaCallableSignature.symbol.
val <S : KaCallableSymbol, C : KaCallableSignature<S>> KaPartiallyAppliedSymbol<S, C>.symbol: S
The callable symbol which the KaPartiallyAppliedSymbol represents. While the information contained in a partially applied symbol is not exhaustive (e.g. applied functions are missing value arguments), the symbol of the callable which is called is definite.
token¶
abstract val token: KaLifetimeToken
The KaLifetimeToken which determines the lifetime of the lifetime owner.
typeArgumentsMapping¶
abstract val typeArgumentsMapping: Map<KaTypeParameterSymbol, KaType>
A map of inferred type arguments. If type placeholders were used, the actual inferred type will be used as a value. The keys for this map are from partiallyAppliedSymbol's type parameters.
In case of a resolution or inference error, the map might be empty.
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.