1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
This test checks call hierarchy queries involving lambdas, which are
treated as mere statements of their enclosing name function, since
we can't track calls to them.
Calls from a global var decl are reported at the ValueSpec.Names.
See golang/go#64451.
-- go.mod --
module example.com
go 1.0
-- a/a.go --
package a
func foo() { //@ loc(foo, "foo")
bar()
}
func bar() { //@ loc(bar, "bar")
go func() { baz() }()
}
func baz() { //@ loc(baz, "baz")
bluh()
}
func bluh() { //@ loc(bluh, "bluh")
print()
}
var _ = func() int { //@ loc(global, "_")
baz()
return 0
}()
func init() { //@ loc(init, "init")
baz()
}
//@ outgoingcalls(foo, bar)
//@ outgoingcalls(bar, baz)
//@ outgoingcalls(baz, bluh)
//@ outgoingcalls(bluh)
//@ outgoingcalls(init, baz)
//@ incomingcalls(foo)
//@ incomingcalls(bar, foo)
//@ incomingcalls(baz, bar, global, init)
//@ incomingcalls(bluh, baz)
//@ incomingcalls(init)
|