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)