diff options
author | Michael Matloob <matloob@golang.org> | 2024-01-29 11:14:05 -0500 |
---|---|---|
committer | Michael Knyszek <mknyszek@google.com> | 2024-02-01 20:19:50 +0000 |
commit | 01c93ad0498b4bc337ced16f4a4b8b65f255189c (patch) | |
tree | 5317732b3619519a896b9425e5d189286f88611a | |
parent | db74bfba18051397d8feb93628b1e9eb3db15575 (diff) | |
download | go-01c93ad0498b4bc337ced16f4a4b8b65f255189c.tar.gz go-01c93ad0498b4bc337ced16f4a4b8b65f255189c.zip |
[release-branch.go1.21] cmd/go/internal/generate: call modload.InitWorkFile
This is necessary for go generate to enter workspace mode for
recognizing package paths in the workspace.
For #56098
Fixes #65351
Change-Id: I25f68de24f4189259353f63194823516e9d3d505
Reviewed-on: https://go-review.googlesource.com/c/go/+/559195
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
(cherry picked from commit b91bad78199aaf8baeb66cb8a30f51b89b8f90ee)
Reviewed-on: https://go-review.googlesource.com/c/go/+/559235
-rw-r--r-- | src/cmd/go/internal/generate/generate.go | 2 | ||||
-rw-r--r-- | src/cmd/go/testdata/script/generate_workspace.txt | 27 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/cmd/go/internal/generate/generate.go b/src/cmd/go/internal/generate/generate.go index f1f4a6cf30d..353506ffc61 100644 --- a/src/cmd/go/internal/generate/generate.go +++ b/src/cmd/go/internal/generate/generate.go @@ -181,6 +181,8 @@ func init() { } func runGenerate(ctx context.Context, cmd *base.Command, args []string) { + modload.InitWorkfile() + if generateRunFlag != "" { var err error generateRunRE, err = regexp.Compile(generateRunFlag) diff --git a/src/cmd/go/testdata/script/generate_workspace.txt b/src/cmd/go/testdata/script/generate_workspace.txt new file mode 100644 index 00000000000..eda8a4f15ec --- /dev/null +++ b/src/cmd/go/testdata/script/generate_workspace.txt @@ -0,0 +1,27 @@ +# This is a regression test for Issue #56098: Go generate +# wasn't initializing workspace mode + +[short] skip + +go generate ./mod +cmp ./mod/got.txt want.txt + +-- go.work -- +go 1.21 + +use ./mod +-- mod/go.mod -- +module example.com/mod +-- mod/gen.go -- +//go:generate go run gen.go got.txt + +package main + +import "os" + +func main() { + outfile := os.Args[1] + os.WriteFile(outfile, []byte("Hello World!\n"), 0644) +} +-- want.txt -- +Hello World!
\ No newline at end of file |