diff options
Diffstat (limited to 'src/cmd/go/internal/modload')
-rw-r--r-- | src/cmd/go/internal/modload/init.go | 6 | ||||
-rw-r--r-- | src/cmd/go/internal/modload/load.go | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go index 664a2a1594..2360feef04 100644 --- a/src/cmd/go/internal/modload/init.go +++ b/src/cmd/go/internal/modload/init.go @@ -56,6 +56,12 @@ var ( CmdModModule string // module argument for 'go mod init' allowMissingModuleImports bool + + // SilenceMissingStdImports indicates that LoadALL should not print an error + // or terminate the process if an imported package is missing, and the import + // path looks like it might be in the standard library (perhaps in a future + // Go version). + SilenceMissingStdImports bool ) // ModFile returns the parsed go.mod file. diff --git a/src/cmd/go/internal/modload/load.go b/src/cmd/go/internal/modload/load.go index 30992e0cc2..e5ea1a6c23 100644 --- a/src/cmd/go/internal/modload/load.go +++ b/src/cmd/go/internal/modload/load.go @@ -433,6 +433,11 @@ func loadAll(testAll bool) []string { var paths []string for _, pkg := range loaded.pkgs { if pkg.err != nil { + if impErr := (*ImportMissingError)(nil); SilenceMissingStdImports && + errors.As(pkg.err, &impErr) && + search.IsStandardImportPath(impErr.Path) { + continue + } base.Errorf("%s: %v", pkg.stackText(), pkg.err) continue } |