pkg.mod = pkg.testOf.mod
imports = pkg.testOf.testImports
} else {
- pkg.mod, pkg.dir, pkg.err = ld.doImport(pkg.path)
+ if strings.Contains(pkg.path, "@") {
+ // Leave for error during load.
+ return
+ }
+ if build.IsLocalImport(pkg.path) {
+ // Leave for error during load.
+ // (Module mode does not allow local imports.)
+ return
+ }
+
+ pkg.mod, pkg.dir, pkg.err = Import(pkg.path)
if pkg.dir == "" {
return
}
}
}
-// doImport finds the directory holding source code for the given import path.
-// It returns the module containing the package (if any),
-// the directory containing the package (if any),
-// and any error encountered.
-// Not all packages have modules: the ones in the standard library do not.
-// Not all packages have directories: "unsafe" and "C" do not.
-func (ld *loader) doImport(path string) (mod module.Version, dir string, err error) {
- if strings.Contains(path, "@") {
- // Leave for error during load.
- return module.Version{}, "", nil
- }
- if build.IsLocalImport(path) {
- // Leave for error during load.
- // (Module mode does not allow local imports.)
- return module.Version{}, "", nil
- }
-
- return Import(path)
-}
-
// scanDir is like imports.ScanDir but elides known magic imports from the list,
// so that we do not go looking for packages that don't really exist.
//