type ReassignOracle … // Init initializes the oracle based on the IR in function fn, laying // the groundwork for future calls to the StaticValue and Reassigned // methods. If the fn's IR is subsequently modified, Init must be // called again. func (ro *ReassignOracle) Init(fn *Func) { … } // StaticValue method has the same semantics as the ir package function // of the same name; see comments on [StaticValue]. func (ro *ReassignOracle) StaticValue(n Node) Node { … } func (ro *ReassignOracle) staticValue1(nn Node) Node { … } // Reassigned method has the same semantics as the ir package function // of the same name; see comments on [Reassigned] for more info. func (ro *ReassignOracle) Reassigned(n *Name) bool { … }