Regression test for 'references' bug golang/go#58506. The 'references' query below, applied to method A.F, implicitly uses the 'implementation' operation. The correct response includes two references to B.F, one from package b and one from package d. However, the incremental 'implementation' algorithm had a bug that cause it to fail to report the reference from package b. The reason was that the incremental implementation uses different algorithms for the local and global cases (with disjoint results), and that when it discovered that type A satisfies interface B and thus that B.F must be included among the global search targets, the implementation forgot to also search package b for local references to B.F. -- go.mod -- module example.com go 1.12 -- a/a.go -- package a type A int func (A) F() {} //@loc(refa, "F"), refs("F", refa, refb, refd) -- b/b.go -- package b import ( "example.com/a" "example.com/c" ) type B interface{ F() } var _ B = a.A(0) var _ B = c.C(0) var _ = B.F //@loc(refb, "F") -- c/c.go -- package c type C int // Even though C.F is "rename coupled" to A.F by B.F, // it should not be among the results. func (C) F() {} -- d/d.go -- package d import "example.com/b" var _ interface{} = b.B.F //@loc(refd, "F")