mirror of https://github.com/golang/go.git
[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 b91bad7819)
Reviewed-on: https://go-review.googlesource.com/c/go/+/559235
This commit is contained in:
parent
db74bfba18
commit
01c93ad049
|
|
@ -181,6 +181,8 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func runGenerate(ctx context.Context, cmd *base.Command, args []string) {
|
func runGenerate(ctx context.Context, cmd *base.Command, args []string) {
|
||||||
|
modload.InitWorkfile()
|
||||||
|
|
||||||
if generateRunFlag != "" {
|
if generateRunFlag != "" {
|
||||||
var err error
|
var err error
|
||||||
generateRunRE, err = regexp.Compile(generateRunFlag)
|
generateRunRE, err = regexp.Compile(generateRunFlag)
|
||||||
|
|
|
||||||
|
|
@ -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!
|
||||||
Loading…
Reference in New Issue