| 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"), loc(beforeX, re"()x"), loc(afterX, re"()x"), loc(beforeY, re"()Y"), loc(afterY, re"Y()") |
| //@refs(beforeY, typeXY, anotherXY, GetXesY) |
| //@refs(afterY, typeXY, anotherXY, GetXesY) |
| //@refs(anotherXY, typeXY, anotherXY, GetXesY) |
| |
| //@refs(beforeX, defX, useX) |
| //@refs(afterX, defX, useX) |
| //@refs(useX, defX, useX) |
| } |
| } |