diff --git a/dependency/resolver.go b/dependency/resolver.go index 35bd474a..43919d58 100644 --- a/dependency/resolver.go +++ b/dependency/resolver.go @@ -1032,23 +1032,23 @@ func (r *Resolver) FindPkg(name string) *PkgInfo { //} //} - // Check $GOPATH - for _, rr := range filepath.SplitList(r.BuildContext.GOPATH) { + // Check $GOROOT + for _, rr := range filepath.SplitList(r.BuildContext.GOROOT) { p = filepath.Join(rr, "src", filepath.FromSlash(name)) if pkgExists(p) { info.Path = p - info.Loc = LocGopath + info.Loc = LocGoroot r.findCache[name] = info return info } } - // Check $GOROOT - for _, rr := range filepath.SplitList(r.BuildContext.GOROOT) { + // Check $GOPATH + for _, rr := range filepath.SplitList(r.BuildContext.GOPATH) { p = filepath.Join(rr, "src", filepath.FromSlash(name)) if pkgExists(p) { info.Path = p - info.Loc = LocGoroot + info.Loc = LocGopath r.findCache[name] = info return info } diff --git a/dependency/resolver_test.go b/dependency/resolver_test.go index 3d850b52..03d507c4 100644 --- a/dependency/resolver_test.go +++ b/dependency/resolver_test.go @@ -42,6 +42,19 @@ func TestResolveLocalShallow(t *testing.T) { } func TestResolveLocalDeep(t *testing.T) { + // create package of same name with sys package + err := os.MkdirAll(filepath.Join(os.Getenv("GOPATH"), "src/strings"), os.ModePerm) + if err != nil { + t.Fatalf("Failed to create package of test case: %s", err) + } + // remove package of same name with sys package + defer func() { + err = os.Remove(filepath.Join(os.Getenv("GOPATH"), "src/strings")) + if err != nil { + t.Fatalf("Failed to remove package of test case: %s", err) + } + }() + r, err := NewResolver("../") if err != nil { t.Fatal(err)