diff options
author | Bryan C. Mills <bcmills@google.com> | 2021-04-09 00:39:25 -0400 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2021-04-09 18:49:05 +0000 |
commit | c3faff7f2d62a81d612ed46204c2e6bd5f460f01 (patch) | |
tree | eba8166108670fee0a77dae58b46092a19b8d301 /src/cmd/go/internal/modload/mvs.go | |
parent | 814c5ff13810e800aeb67fd0371e21984d4d2c64 (diff) | |
download | go-c3faff7f2d62a81d612ed46204c2e6bd5f460f01.tar.gz go-c3faff7f2d62a81d612ed46204c2e6bd5f460f01.zip |
cmd/go/internal/modload: change mvsReqs to store roots instead of a full build list
The mvsReqs implementation has always been a bit ambivalent about
whether the root requirements return the full build list, just the
direct requirements, or some hybrid of the two.
However, a full build list always requires the Target module as the
first entry, and it's easer to remove a redundant leading element from
a slice than to add one. Changing the mvsReqs field to contain
arbitrary roots instead of a full build list eliminates the need to
add redundant elements, at the cost of needing to remove redundant
elements in more places.
For #36460
Change-Id: Idd4c2d6bc7b66f67680037dab1fb9c2d1b40ab93
Reviewed-on: https://go-review.googlesource.com/c/go/+/308811
Trust: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src/cmd/go/internal/modload/mvs.go')
-rw-r--r-- | src/cmd/go/internal/modload/mvs.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cmd/go/internal/modload/mvs.go b/src/cmd/go/internal/modload/mvs.go index 5f52017a74..87619b4ace 100644 --- a/src/cmd/go/internal/modload/mvs.go +++ b/src/cmd/go/internal/modload/mvs.go @@ -38,14 +38,14 @@ func cmpVersion(v1, v2 string) int { // mvsReqs implements mvs.Reqs for module semantic versions, // with any exclusions or replacements applied internally. type mvsReqs struct { - buildList []module.Version + roots []module.Version } func (r *mvsReqs) Required(mod module.Version) ([]module.Version, error) { if mod == Target { // Use the build list as it existed when r was constructed, not the current // global build list. - return r.buildList[1:], nil + return r.roots, nil } if mod.Version == "none" { |