From 71f44073ef4ffd32376e2b197dad0bd815b0056b Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 23 Apr 2018 09:31:51 -0700 Subject: [PATCH] cmd/guru: always import tests in initial referrers import If test files are not included here, then results in those files will be missing for queries within a single package. This work supported by Sourcegraph. Change-Id: I8136ea250ba980179228d9b408d9e7409c49a873 Reviewed-on: https://go-review.googlesource.com/97799 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Alan Donovan --- cmd/guru/referrers.go | 6 ++++++ cmd/guru/testdata/src/referrers/int_test.go | 2 ++ cmd/guru/testdata/src/referrers/main.go | 2 ++ cmd/guru/testdata/src/referrers/main.golden | 4 ++++ 4 files changed, 14 insertions(+) diff --git a/cmd/guru/referrers.go b/cmd/guru/referrers.go index d6b9df90..1a4b3bd2 100644 --- a/cmd/guru/referrers.go +++ b/cmd/guru/referrers.go @@ -34,6 +34,12 @@ func referrers(q *Query) error { return err } + // Load tests of the query package + // even if the query location is not in the tests. + for path := range lconf.ImportPkgs { + lconf.ImportPkgs[path] = true + } + // Load/parse/type-check the query package. lprog, err := lconf.Load() if err != nil { diff --git a/cmd/guru/testdata/src/referrers/int_test.go b/cmd/guru/testdata/src/referrers/int_test.go index 9102cd6f..397842bd 100644 --- a/cmd/guru/testdata/src/referrers/int_test.go +++ b/cmd/guru/testdata/src/referrers/int_test.go @@ -5,4 +5,6 @@ import "lib" func _() { // This reference should be found by the ref-method query. _ = (lib.Type).Method // ref from internal test package + + _ = notexported } diff --git a/cmd/guru/testdata/src/referrers/main.go b/cmd/guru/testdata/src/referrers/main.go index 1fc80ea2..acaae1fe 100644 --- a/cmd/guru/testdata/src/referrers/main.go +++ b/cmd/guru/testdata/src/referrers/main.go @@ -25,6 +25,8 @@ func main() { s2.f = 1 } +var notexported int // @referrers unexported-from-test "notexported" + // Test //line directives: type U int // @referrers ref-type-U "U" diff --git a/cmd/guru/testdata/src/referrers/main.golden b/cmd/guru/testdata/src/referrers/main.golden index dc97f6ac..bf56d763 100644 --- a/cmd/guru/testdata/src/referrers/main.golden +++ b/cmd/guru/testdata/src/referrers/main.golden @@ -54,6 +54,10 @@ references to field f int _ = s{}.f // @referrers ref-field "f" s2.f = 1 +-------- @referrers unexported-from-test -------- +references to var notexported int + _ = notexported + -------- @referrers ref-type-U -------- references to type U int open nosuchfile.y: no such file or directory (+ 1 more refs in this file)