aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modload/modfile.go
diff options
context:
space:
mode:
authorJay Conrod <jayconrod@google.com>2020-11-10 15:48:37 -0500
committerJay Conrod <jayconrod@google.com>2020-11-18 15:31:11 +0000
commitd3072b838366e7cc6b9af9767d3648f6e62bae8b (patch)
treefac3c07df5ef9a1650f72e6cf35d7e20918c8353 /src/cmd/go/internal/modload/modfile.go
parentb194b5151fdac0c33da0b7359c97f92781ab3b5e (diff)
downloadgo-d3072b838366e7cc6b9af9767d3648f6e62bae8b.tar.gz
go-d3072b838366e7cc6b9af9767d3648f6e62bae8b.zip
cmd/go: in 'go get', only load retractions for resolved versions
Previously, 'go get' loaded retractions for every module in the build list, which took a long time and usually wasn't helpful. This rolls forward CL 269019, which was reverted in CL 270521. The new revision adds a call to modload.ListModules at the end of 'go get' to ensure .info files are cached for everything in the build list. Fixes #42185 Change-Id: I684f66c5e674384d5a0176fbc8317e5530b8a915 Reviewed-on: https://go-review.googlesource.com/c/go/+/270858 Trust: Jay Conrod <jayconrod@google.com> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/go/internal/modload/modfile.go')
-rw-r--r--src/cmd/go/internal/modload/modfile.go20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/cmd/go/internal/modload/modfile.go b/src/cmd/go/internal/modload/modfile.go
index 7a8963246b..e9601c3e7c 100644
--- a/src/cmd/go/internal/modload/modfile.go
+++ b/src/cmd/go/internal/modload/modfile.go
@@ -59,7 +59,7 @@ func CheckAllowed(ctx context.Context, m module.Version) error {
if err := CheckExclusions(ctx, m); err != nil {
return err
}
- if err := checkRetractions(ctx, m); err != nil {
+ if err := CheckRetractions(ctx, m); err != nil {
return err
}
return nil
@@ -85,9 +85,9 @@ type excludedError struct{}
func (e *excludedError) Error() string { return "excluded by go.mod" }
func (e *excludedError) Is(err error) bool { return err == ErrDisallowed }
-// checkRetractions returns an error if module m has been retracted by
+// CheckRetractions returns an error if module m has been retracted by
// its author.
-func checkRetractions(ctx context.Context, m module.Version) error {
+func CheckRetractions(ctx context.Context, m module.Version) error {
if m.Version == "" {
// Main module, standard library, or file replacement module.
// Cannot be retracted.
@@ -165,28 +165,28 @@ func checkRetractions(ctx context.Context, m module.Version) error {
}
}
if isRetracted {
- return module.VersionError(m, &retractedError{rationale: rationale})
+ return module.VersionError(m, &ModuleRetractedError{Rationale: rationale})
}
return nil
}
var retractCache par.Cache
-type retractedError struct {
- rationale []string
+type ModuleRetractedError struct {
+ Rationale []string
}
-func (e *retractedError) Error() string {
+func (e *ModuleRetractedError) Error() string {
msg := "retracted by module author"
- if len(e.rationale) > 0 {
+ if len(e.Rationale) > 0 {
// This is meant to be a short error printed on a terminal, so just
// print the first rationale.
- msg += ": " + ShortRetractionRationale(e.rationale[0])
+ msg += ": " + ShortRetractionRationale(e.Rationale[0])
}
return msg
}
-func (e *retractedError) Is(err error) bool {
+func (e *ModuleRetractedError) Is(err error) bool {
return err == ErrDisallowed
}