// escape implements a simple "address-taken" escape analysis. It // calls f for each local variable that appears on the left side of an // assignment (escapes=false) or has its address taken (escapes=true). // The initialization of a variable by its declaration does not count // as an assignment. func escape(info *types.Info, root ast.Node, f func(v *types.Var, escapes bool)) { … }