diff --git a/go/loader/loader.go b/go/loader/loader.go index 5c87a29d..98305276 100644 --- a/go/loader/loader.go +++ b/go/loader/loader.go @@ -458,8 +458,9 @@ func (conf *Config) Load() (*Program, error) { conf.FindPackage = func(ctxt *build.Context, path string) (*build.Package, error) { // TODO(adonovan): cache calls to build.Import // so we don't do it three times per test package. + // (Note that this is difficult due to vendoring.) ioLimit <- true - bp, err := ctxt.Import(path, conf.Cwd, 0) + bp, err := ctxt.Import(path, conf.Cwd, importMode) <-ioLimit if _, ok := err.(*build.NoGoError); ok { return bp, nil // empty directory is not an error diff --git a/go/loader/loader_go15.go b/go/loader/loader_go15.go new file mode 100644 index 00000000..5dff7ca7 --- /dev/null +++ b/go/loader/loader_go15.go @@ -0,0 +1,11 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.6 + +package loader + +import "go/build" + +var importMode build.ImportMode = 0 diff --git a/go/loader/loader_go16.go b/go/loader/loader_go16.go new file mode 100644 index 00000000..cd310637 --- /dev/null +++ b/go/loader/loader_go16.go @@ -0,0 +1,11 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.6 + +package loader + +import "go/build" + +var importMode build.ImportMode = build.AllowVendor