This test demonstrates diagnostics for adding a go.work file.
Quick-fixes change files on disk, so are tested by integration tests.
TODO(rfindley): improve the "cannot find package" import errors.
-- skip --
These diagnostics are no longer produced, because in golang/go#57979
(zero-config gopls) we made gopls function independent of a go.work file.
Preserving this test as we may want to re-enable the code actions go manage
a go.work file.
Note that in go.dev/issue/60584#issuecomment-1622238115, this test was flaky.
However, critical error logic has since been rewritten.
-- a/go.mod --
module mod.com/a
go 1.18
-- a/main.go --
package main //@diag("main", re"add a go.work file")
import "mod.com/a/lib" //@diag("\"mod.com", re"cannot find package")
func main() {
_ = lib.C
}
-- a/lib/lib.go --
package lib //@diag("lib", re"add a go.work file")
const C = "b"
-- b/go.mod --
module mod.com/b
go 1.18
-- b/main.go --
package main //@diag("main", re"add a go.work file")
import "mod.com/b/lib" //@diag("\"mod.com", re"cannot find package")
func main() {
_ = lib.C
}
-- b/lib/lib.go --
package lib //@diag("lib", re"add a go.work file")
const C = "b"