Class ReferenceEdges

java.lang.Object
org.ek9lang.compiler.phase9.ReferenceEdges
All Implemented Interfaces:
Function<IRInstr, List<ReferenceEdges.Edge>>

final class ReferenceEdges extends Object implements Function<IRInstr, List<ReferenceEdges.Edge>>
Every reference an instruction stores INTO an object - the edges a published object could gain - classified by OPCODE, for V-P's audit (PublishVerifier, review 2026-11-02 M4). It is written apart from PublishedValues on purpose: that class says where a PUBLISH goes by rule; this one lists, for every opcode there is, what the instruction can make a holder reach. The switch over IROpcode has no default, so a new opcode does not compile until it is classified here - a new way to store a reference cannot slip past the barrier unseen. A call's edges come from what its callee may keep (KeptArgumentHolders), and from an argument it consumes (its conventions: the callee takes the count, so it keeps the value somewhere - in its receiver, if it has one).