cmd/go/internal/modload: report errors explicitly from Lookup
Previously, we reported errors directly in (*loader).load via base.Errorf. Unfortunately, (*loader).load can be called from contexts in which such errors should not be considered fatal, such as by load.PackagesAndErrors. Instead, we save the errors in pkg.err and modify Lookup to return that error. This change is a bit awkward: we end up suppressing a "no Go files" error for packages at the root of newly-imported modules, even if they really do contain source files. I believe that that's due to a special-case lookup for modules in the build list, which allows us to "validate" imports for modules in the build list even though we haven't actually downloaded their sources (or verified that they actually contain the requested package). The fix for that issue is in the change that follows this one. Fixes #26602. Change-Id: I16f00ceb143fbb797cfc3cb07fd08aeb6154575b Reviewed-on: https://go-review.googlesource.com/127936 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Showing
Please register or sign in to comment