Skip to content

KaApplicableCallCandidate

A call candidate that is applicable for a call.

A candidate is applicable if:

  • Its arguments are complete and assignable to its parameters.

  • Its type arguments are complete and fit all the constraints of its type parameters.

In other words, given the arguments and type arguments, the candidate could be called at that specific call site.

Properties

candidate

The KaSimpleOrMultiCall representing the call candidate.

isInBestCandidates

abstract val isInBestCandidates: Boolean

Whether the candidate is in the final set of candidates considered during the call's resolution. There can be multiple best candidates if the call is ambiguous.

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.