// addCallees adds client data and links for the facts that site calls fns. func (a *analysis) addCallees(site ssa.CallInstruction, fns []*ssa.Function) { v := calleesJSON{ Descr: site.Common().Description(), Callees: []anchorJSON{}, // (JS wants non-nil) } var this *types.Package // for relativizing names if p := site.Parent().Package(); p != nil { this = p.Object } for _, fn := range fns { v.Callees = append(v.Callees, anchorJSON{ Text: prettyFunc(this, fn), Href: a.posURL(funcToken(fn), len("func")), }) } fi, offset := a.fileAndOffset(site.Common().Pos()) fi.addLink(aLink{ start: offset, end: offset + len("("), title: fmt.Sprintf("%d callees", len(v.Callees)), onclick: fmt.Sprintf("onClickCallees(%d)", fi.addData(v)), }) }