Class CallTargetResolution

java.lang.Object
org.ek9lang.compiler.phase7.calls.CallTargetResolution

public final class CallTargetResolution extends Object
THE single source of truth for the descriptor OWNER and dispatch of a resolved call - the signpost of the family; hold its parts, one question each, never re-derive them: Reuse them from BOTH the resolved-method path (CallDetailsBuilder) and the chained object-access path (ChainedCallDispatch) so the two never re-derive - and drift on - the CALL descriptor owner. See docs/ir-and-codegen/EK9_UNIFIED_CALL_TARGET_RESOLUTION_DESIGN.md.

Invariant (enforced by the JVM back-end): the descriptor owner type and isTraitCall move TOGETHER - INVOKEINTERFACE iff the owner is an interface (trait / Any) - so a caller derives BOTH from the SAME DefiningType: targetType = definingType and isTraitCall = TraitCall.requiredFor(definingType) (never one from the defining type and the other from the static receiver).