aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/work/build.go
diff options
context:
space:
mode:
authorJay Conrod <jayconrod@google.com>2020-12-11 16:45:28 -0500
committerJay Conrod <jayconrod@google.com>2020-12-14 15:03:28 +0000
commit451b6b38fd3f87957c39fdb6572740f74ea27931 (patch)
tree1218fb0833e2b2c8a91a89a0c481a26df9c35d33 /src/cmd/go/internal/work/build.go
parent0a02371b0576964e81c3b40d328db9a3ef3b031b (diff)
downloadgo-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.go11
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))