github.com/powerman/golang-tools@v0.1.11-0.20220410185822-5ad214d8d803/go/callgraph/vta/testdata/src/static_calls.go (about) 1 // Copyright 2021 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // go:build ignore 6 7 package testdata 8 9 type I interface{} 10 11 func foo(i I) (I, I) { 12 return i, i 13 } 14 15 func doWork(ii I) {} 16 17 func close(iii I) {} 18 19 func Baz(inp I) { 20 a, b := foo(inp) 21 defer close(a) 22 go doWork(b) 23 } 24 25 // Relevant SSA: 26 // func Baz(inp I): 27 // t0 = foo(inp) 28 // t1 = extract t0 #0 29 // t2 = extract t0 #1 30 // defer close(t1) 31 // go doWork(t2) 32 // rundefers 33 // ... 34 // func foo(i I) (I, I): 35 // return i, i 36 37 // WANT: 38 // Local(inp) -> Local(i) 39 // Local(t1) -> Local(iii) 40 // Local(t2) -> Local(ii) 41 // Local(i) -> Local(t0[0]), Local(t0[1])