./escape_lab.go:162:20: devirtualizing t.Transform to Doubler ./escape_lab.go:41:2: p escapes to heap in NewPointPtr: ./escape_lab.go:41:2: moved to heap: p ./escape_lab.go:60:7: &Point{...} does not escape ./escape_lab.go:84:25: x escapes to heap in SquareLogged: ./escape_lab.go:84:25: flow: {heap} ← {storage for ... argument}: ./escape_lab.go:84:12: ... argument does not escape ./escape_lab.go:84:25: x escapes to heap ./escape_lab.go:99:9: func literal escapes to heap in MakeCounter: ./escape_lab.go:98:2: n escapes to heap in MakeCounter: ./escape_lab.go:98:2: moved to heap: n ./escape_lab.go:99:9: func literal escapes to heap ./escape_lab.go:109:17: nums does not escape ./escape_lab.go:133:2: p escapes to heap in StashGlobal: ./escape_lab.go:133:2: flow: {heap} ← &p: ./escape_lab.go:133:2: moved to heap: p ./escape_lab.go:161:29: Doubler{} does not escape ./escape_lab.go:169:19: parameter t leaks to {heap} for UseInterface with derefs=0: ./escape_lab.go:169:19: flow: {heap} ← t: ./escape_lab.go:169:19: leaking param: t :1: parameter ~p0 leaks to {heap} for Transformer.Transform with derefs=0: :1: flow: {heap} ← ~p0: