Test of basic cross-package references. -- go.mod -- module example.com go 1.12 -- a/a.go -- package a type X struct { Y int //@loc(typeXY, "Y") } -- b/b.go -- package b import "example.com/a" func GetXes() []a.X { return []a.X{ { Y: 1, //@loc(GetXesY, "Y"), refs("Y", typeXY, GetXesY, anotherXY) }, } } -- c/c.go -- package c import "example.com/b" func _() { xes := b.GetXes() for _, x := range xes { //@loc(defX, "x") _ = x.Y //@loc(useX, "x"), loc(anotherXY, "Y"), refs("Y", typeXY, anotherXY, GetXesY), refs(".", defX, useX), refs("x", defX, useX) } }