diff --git a/src/cmd/go/internal/doc/doc.go b/src/cmd/go/internal/doc/doc.go
index fceeaf1..2a855a1 100644
--- a/src/cmd/go/internal/doc/doc.go
+++ b/src/cmd/go/internal/doc/doc.go
@@ -21,6 +21,7 @@
"strings"
"cmd/go/internal/base"
+ "cmd/go/internal/cfg"
"cmd/internal/telemetry/counter"
)
@@ -379,7 +380,7 @@
// Done below.
case 2:
// Package must be findable and importable.
- pkg, err := build.Import(args[0], wd, build.ImportComment)
+ pkg, err := cfg.BuildContext.Import(args[0], wd, build.ImportComment)
if err == nil {
return pkg, args[0], args[1], false
}
@@ -388,7 +389,7 @@
if !ok {
break
}
- if pkg, err := build.ImportDir(packagePath, build.ImportComment); err == nil {
+ if pkg, err := cfg.BuildContext.ImportDir(packagePath, build.ImportComment); err == nil {
return pkg, arg, args[1], true
}
}
@@ -402,12 +403,12 @@
// package paths as their prefix.
var importErr error
if filepath.IsAbs(arg) {
- pkg, importErr = build.ImportDir(arg, build.ImportComment)
+ pkg, importErr = cfg.BuildContext.ImportDir(arg, build.ImportComment)
if importErr == nil {
return pkg, arg, "", false
}
} else {
- pkg, importErr = build.Import(arg, wd, build.ImportComment)
+ pkg, importErr = cfg.BuildContext.Import(arg, wd, build.ImportComment)
if importErr == nil {
return pkg, arg, "", false
}
@@ -417,7 +418,7 @@
// Kills the problem caused by case-insensitive file systems
// matching an upper case name as a package name.
if !strings.ContainsAny(arg, `/\`) && token.IsExported(arg) {
- pkg, err := build.ImportDir(".", build.ImportComment)
+ pkg, err := cfg.BuildContext.ImportDir(".", build.ImportComment)
if err == nil {
return pkg, "", arg, false
}
@@ -443,7 +444,7 @@
symbol = arg[period+1:]
}
// Have we identified a package already?
- pkg, err := build.Import(arg[0:period], wd, build.ImportComment)
+ pkg, err := cfg.BuildContext.Import(arg[0:period], wd, build.ImportComment)
if err == nil {
return pkg, arg[0:period], symbol, false
}
@@ -455,7 +456,7 @@
if !ok {
break
}
- if pkg, err = build.ImportDir(path, build.ImportComment); err == nil {
+ if pkg, err = cfg.BuildContext.ImportDir(path, build.ImportComment); err == nil {
return pkg, arg[0:period], symbol, true
}
}
@@ -463,8 +464,8 @@
}
// If it has a slash, we've failed.
if slash >= 0 {
- // build.Import should always include the path in its error message,
- // and we should avoid repeating it. Unfortunately, build.Import doesn't
+ // cfg.BuildContext.Import should always include the path in its error message,
+ // and we should avoid repeating it. Unfortunately, cfg.BuildContext.Import doesn't
// return a structured error. That can't easily be fixed, since it
// invokes 'go list' and returns the error text from the loaded package.
// TODO(golang.org/issue/34750): load using golang.org/x/tools/go/packages
@@ -505,9 +506,9 @@
return false
}
-// importDir is just an error-catching wrapper for build.ImportDir.
+// importDir is just an error-catching wrapper for cfg.BuildContext.ImportDir.
func importDir(dir string) *build.Package {
- pkg, err := build.ImportDir(dir, build.ImportComment)
+ pkg, err := cfg.BuildContext.ImportDir(dir, build.ImportComment)
if err != nil {
log.Fatal(err)
}