This command modifies the call tree starting at `modcmd.runVerify` to
inject a `State` parameter to every function that is currently using
the global `modload.LoaderState` variable. By explicilty passing a
`State` parameter, we can begin to eliminate the usage of the global
`modload.LoaderState`.
This commit is part of the overall effort to eliminate global
modloader state.
[git-generate]
cd src/cmd/go/internal/modcmd
rf 'inject modload.LoaderState runVerify'
cd ..
./rf-cleanup.zsh
Change-Id: I5b3b4670a4e2d19375049e585035145d14248b40
Reviewed-on: https://go-review.googlesource.com/c/go/+/709985
Reviewed-by: Michael Matloob <matloob@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
errsChans[i] = errsc
mod := mod // use a copy to avoid data races
go func() {
- errsc <- verifyMod(ctx, mod)
+ errsc <- verifyMod(modload.LoaderState, ctx, mod)
<-sem
}()
}
}
}
-func verifyMod(ctx context.Context, mod module.Version) []error {
+func verifyMod(loaderstate *modload.State, ctx context.Context, mod module.Version) []error {
if gover.IsToolchain(mod.Path) {
// "go" and "toolchain" have no disk footprint; nothing to verify.
return nil
}
- if modload.LoaderState.MainModules.Contains(mod.Path) {
+ if loaderstate.MainModules.Contains(mod.Path) {
return nil
}
var errs []error