]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: inject State parameter into `modcmd.runVerify`
authorIan Alexander <jitsu@google.com>
Thu, 2 Oct 2025 03:21:21 +0000 (23:21 -0400)
committerIan Alexander <jitsu@google.com>
Mon, 20 Oct 2025 19:59:28 +0000 (12:59 -0700)
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>

src/cmd/go/internal/modcmd/verify.go

index bf803fd2ebbaf5a52966ffd8d960bfd9057b3b66..358d7dd2030169738ed1f9e3b64ef005a63458d1 100644 (file)
@@ -71,7 +71,7 @@ func runVerify(ctx context.Context, cmd *base.Command, args []string) {
                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
                }()
        }
@@ -89,12 +89,12 @@ func runVerify(ctx context.Context, cmd *base.Command, args []string) {
        }
 }
 
-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