]> Cypherpunks.ru repositories - gostls13.git/commitdiff
[release-branch.go1.22] cmd/go/internal/generate: call modload.InitWorkFile
authorMichael Matloob <matloob@golang.org>
Mon, 29 Jan 2024 16:14:05 +0000 (11:14 -0500)
committerMichael Knyszek <mknyszek@google.com>
Fri, 2 Feb 2024 16:17:53 +0000 (16:17 +0000)
This is necessary for go generate to enter workspace mode for
recognizing package paths in the workspace.

For #56098
Fixes #65352

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/+/559236

src/cmd/go/internal/generate/generate.go
src/cmd/go/testdata/script/generate_workspace.txt [new file with mode: 0644]

index dbe84d7fd641d51f14a6f3c46cf6d01849349e38..6371353e2024356305bf50e606af233cc4b4641d 100644 (file)
@@ -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 (file)
index 0000000..5ba2393
--- /dev/null
@@ -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.22
+
+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