diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go index cdcfbeb8ded..23f4efd02ad 100644 --- a/src/cmd/go/internal/modload/init.go +++ b/src/cmd/go/internal/modload/init.go @@ -610,6 +610,9 @@ func UpdateWorkFile(wf *modfile.WorkFile) { missingModulePaths := map[string]string{} // module directory listed in file -> abspath modroot for _, d := range wf.Use { + if d.Path == "" { + continue // d is marked for deletion. + } modRoot := d.Path if d.ModulePath == "" { missingModulePaths[d.Path] = modRoot diff --git a/src/cmd/go/testdata/script/work_use_issue50958.txt b/src/cmd/go/testdata/script/work_use_issue50958.txt new file mode 100644 index 00000000000..7a25531f3d1 --- /dev/null +++ b/src/cmd/go/testdata/script/work_use_issue50958.txt @@ -0,0 +1,17 @@ +go work use -r . +cmp go.work go.work.want + +-- go.mod -- +module example +go 1.18 +-- go.work -- +go 1.18 + +use sub +-- go.work.want -- +go 1.18 + +use . +-- sub/README.txt -- +This directory no longer contains a go.mod file. +