]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go/internal/modload: improve error message for failing to read module listed...
authorZeke Lu <lvzecai@gmail.com>
Fri, 7 Oct 2022 00:49:15 +0000 (00:49 +0000)
committerGopher Robot <gobot@golang.org>
Sat, 8 Oct 2022 09:29:15 +0000 (09:29 +0000)
Run "go build ./x" in this workspace:

  -- go.work --
  use ./y
  -- x/go.mod --
  module x

  go 1.19
  -- x/m.go --
  package m

It fails with: "go: open /tmp/foo/y/go.mod: no such file or directory".
It's unclear where the name "y" comes from.
This change will emit error like: "go: cannot load module listed in
go.work file: open /tmp/foo/y/go.mod: no such file or directory"

Fixes #55952.

Change-Id: Ia45dd915e3fbd6e33340f352b3d6235c6c31190b
GitHub-Last-Rev: 410de1b4a71d07bbd5abd1482b6d55fa29f31336
GitHub-Pull-Request: golang/go#56050
Reviewed-on: https://go-review.googlesource.com/c/go/+/438147
Run-TryBot: hopehook <hopehook@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
src/cmd/go/internal/modload/init.go
src/cmd/go/testdata/script/work_use_issue55952.txt [new file with mode: 0644]

index 7da2bebdb8fd1a2043335748ee3d22c90a54f34d..06be18405d2037a738ad46138c1bd12820f863a8 100644 (file)
@@ -718,7 +718,11 @@ func LoadModFile(ctx context.Context) *Requirements {
                var fixed bool
                data, f, err := ReadModFile(gomod, fixVersion(ctx, &fixed))
                if err != nil {
-                       base.Fatalf("go: %v", err)
+                       if inWorkspaceMode() {
+                               base.Fatalf("go: cannot load module listed in go.work file: %v", err)
+                       } else {
+                               base.Fatalf("go: %v", err)
+                       }
                }
 
                modFiles = append(modFiles, f)
diff --git a/src/cmd/go/testdata/script/work_use_issue55952.txt b/src/cmd/go/testdata/script/work_use_issue55952.txt
new file mode 100644 (file)
index 0000000..2eef361
--- /dev/null
@@ -0,0 +1,11 @@
+! go list .
+stderr '^go: cannot load module listed in go\.work file: open .+go\.mod:'
+
+-- go.work --
+use ./y
+-- x/go.mod --
+module x
+
+go 1.19
+-- x/m.go --
+package m