diff options
author | Jay Conrod <jayconrod@google.com> | 2020-12-11 16:45:28 -0500 |
---|---|---|
committer | Jay Conrod <jayconrod@google.com> | 2020-12-14 15:03:28 +0000 |
commit | 451b6b38fd3f87957c39fdb6572740f74ea27931 (patch) | |
tree | 1218fb0833e2b2c8a91a89a0c481a26df9c35d33 /src/cmd/go/internal/work/build.go | |
parent | 0a02371b0576964e81c3b40d328db9a3ef3b031b (diff) | |
download | go-451b6b38fd3f87957c39fdb6572740f74ea27931.tar.gz go-451b6b38fd3f87957c39fdb6572740f74ea27931.zip |
cmd/go: refactor error reporting in internal/load
Replaced load.PackagesForBuild with a new function,
load.CheckPackageErrors. Callers should now call PackagesAndErrors,
then CheckPackageErrors for the same functionality.
Removed load.Packages. Callers should call base.Errorf and filter the
package list as needed.
This gives callers more flexibility in handling package load errors.
For #42638
Change-Id: Id75463ba695adc1ca3f8693ceb2c8978b74a3500
Reviewed-on: https://go-review.googlesource.com/c/go/+/277354
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Jay Conrod <jayconrod@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/go/internal/work/build.go')
-rw-r--r-- | src/cmd/go/internal/work/build.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go index be5532d7aa..1f99ed6e07 100644 --- a/src/cmd/go/internal/work/build.go +++ b/src/cmd/go/internal/work/build.go @@ -369,7 +369,8 @@ func runBuild(ctx context.Context, cmd *base.Command, args []string) { var b Builder b.Init() - pkgs := load.PackagesForBuild(ctx, args) + pkgs := load.PackagesAndErrors(ctx, args) + load.CheckPackageErrors(pkgs) explicitO := len(cfg.BuildO) > 0 @@ -399,7 +400,7 @@ func runBuild(ctx context.Context, cmd *base.Command, args []string) { fmt.Fprint(os.Stderr, "go build: -i flag is deprecated\n") } - pkgs = omitTestOnly(pkgsFilter(load.Packages(ctx, args))) + pkgs = omitTestOnly(pkgsFilter(pkgs)) // Special case -o /dev/null by not writing at all. if cfg.BuildO == os.DevNull { @@ -583,7 +584,8 @@ func runInstall(ctx context.Context, cmd *base.Command, args []string) { } } BuildInit() - pkgs := load.PackagesForBuild(ctx, args) + pkgs := load.PackagesAndErrors(ctx, args) + load.CheckPackageErrors(pkgs) if cfg.BuildI { allGoroot := true for _, pkg := range pkgs { @@ -824,7 +826,8 @@ func installOutsideModule(ctx context.Context, args []string) { // TODO(golang.org/issue/40276): don't report errors loading non-main packages // matched by a pattern. - pkgs := load.PackagesForBuild(ctx, patterns) + pkgs := load.PackagesAndErrors(ctx, patterns) + load.CheckPackageErrors(pkgs) mainPkgs := make([]*load.Package, 0, len(pkgs)) mainCount := make([]int, len(patterns)) nonMainCount := make([]int, len(patterns)) |