if n.X.Type().IsArray() {
k = e.addr(n.X)
} else {
- e.discard(n.X)
+ e.mutate(n.X)
}
case ir.ODEREF, ir.ODOTPTR:
- e.discard(n)
+ e.mutate(n)
case ir.OINDEXMAP:
n := n.(*ir.IndexExpr)
e.discard(n.X)
return k
}
+func (e *escape) mutate(n ir.Node) {
+ e.expr(e.mutatorHole(), n)
+}
+
func (e *escape) addrs(l ir.Nodes) []hole {
var ks []hole
for _, n := range l {