aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2018-08-17 23:08:24 -0400
committerRuss Cox <rsc@golang.org>2018-08-18 18:22:57 +0000
commit5d750db02415e9b3ff5624ecbaf1f5d141145bde (patch)
tree6cf12ac1b964a532099f097ce766c8b3724125d4
parentcc880de4bebf9b9242a8f5d1d7e9cf01863bb701 (diff)
downloadgo-5d750db02415e9b3ff5624ecbaf1f5d141145bde.tar.gz
go-5d750db02415e9b3ff5624ecbaf1f5d141145bde.zip
cmd/go: fix go mod tidy crash on empty module
Fixes #27066. Change-Id: Iede4385ad86b42d7d90814965b161a7e64d29833 Reviewed-on: https://go-review.googlesource.com/129799 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-rw-r--r--src/cmd/go/internal/modcmd/tidy.go3
-rw-r--r--src/cmd/go/testdata/script/mod_tidy.txt7
2 files changed, 9 insertions, 1 deletions
diff --git a/src/cmd/go/internal/modcmd/tidy.go b/src/cmd/go/internal/modcmd/tidy.go
index 54f47e764f..f2063a9ea6 100644
--- a/src/cmd/go/internal/modcmd/tidy.go
+++ b/src/cmd/go/internal/modcmd/tidy.go
@@ -44,10 +44,11 @@ func runTidy(cmd *base.Command, args []string) {
// LoadALL adds missing modules.
// Remove unused modules.
- used := map[module.Version]bool{modload.Target: true}
+ used := make(map[module.Version]bool)
for _, pkg := range modload.LoadALL() {
used[modload.PackageModule(pkg)] = true
}
+ used[modload.Target] = true // note: LoadALL initializes Target
inGoMod := make(map[string]bool)
for _, r := range modload.ModFile().Require {
diff --git a/src/cmd/go/testdata/script/mod_tidy.txt b/src/cmd/go/testdata/script/mod_tidy.txt
index 86434af7f3..449aa073a7 100644
--- a/src/cmd/go/testdata/script/mod_tidy.txt
+++ b/src/cmd/go/testdata/script/mod_tidy.txt
@@ -10,6 +10,10 @@ go list -m all
stdout '^w.1 v1.2.0'
stdout '^z.1 v1.2.0'
+# empty tidy should not crash
+cd triv
+go mod tidy
+
-- go.mod --
module m
@@ -55,3 +59,6 @@ module z
-- z/sub/sub.go --
package sub
+
+-- triv/go.mod --
+module triv