cmd/go: make Reset work with any State instance

This commit updates the Reset function to work with any state
object in preparation for converting it to a method.

This commit is part of the overall effort to eliminate global
modloader state.

Change-Id: I6103842ea0a0528698217930afc0e34a2aa21eea
Reviewed-on: https://go-review.googlesource.com/c/go/+/712701
Reviewed-by: Michael Matloob <matloob@golang.org>
Reviewed-by: Michael Matloob <matloob@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
Ian Alexander 2025-10-16 18:09:57 -04:00
parent 386d81151d
commit 0d3044f965
2 changed files with 4 additions and 4 deletions

View file

@ -377,8 +377,8 @@ func WorkFilePath(loaderstate *State) string {
// Reset clears all the initialized, cached state about the use of modules,
// so that we can start over.
func Reset() {
setState(LoaderState, State{})
func Reset(s *State) {
setState(s, State{})
}
func setState(s *State, new State) State {

View file

@ -352,7 +352,7 @@ func Exec(gotoolchain string) {
}
// Set up modules without an explicit go.mod, to download distribution.
modload.Reset()
modload.Reset(modload.LoaderState)
modload.LoaderState.ForceUseModules = true
modload.LoaderState.RootMode = modload.NoRoot
modload.Init(modload.LoaderState)
@ -695,7 +695,7 @@ func maybeSwitchForGoInstallVersion(minVers string) {
modload.LoaderState.ForceUseModules = true
modload.LoaderState.RootMode = modload.NoRoot
modload.Init(modload.LoaderState)
defer modload.Reset()
defer modload.Reset(modload.LoaderState)
// See internal/load.PackagesAndErrorsOutsideModule
ctx := context.Background()