// stmt evaluates a single Go statement. func (e *escape) stmt(n ir.Node) { … } func (e *escape) stmts(l ir.Nodes) { … } // block is like stmts, but preserves loopDepth. func (e *escape) block(l ir.Nodes) { … } func (e *escape) dcl(n *ir.Name) hole { … }