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"
