This test checks that gopls works with multiple ad-hoc packages, which lack
a go.mod file.
We should be able to import standard library packages, get diagnostics, and
reference symbols defined in the same directory.
-- main.go --
package main
import "fmt"
func main() {
fmt.Println(mainMsg) //@def("mainMsg", mainMsg)
fmt.Println(undef) //@diag("undef", re"undefined|undeclared")
}
-- main2.go --
package main
const mainMsg = "main" //@loc(mainMsg, "mainMsg")
-- a/a.go --
package a
import "fmt"
func _() {
fmt.Println(aMsg) //@def("aMsg", aMsg)
fmt.Println(undef) //@diag("undef", re"undefined|undeclared")
}
-- a/a2.go --
package a
const aMsg = "a" //@loc(aMsg, "aMsg")
-- b/b.go --
package b
import "fmt"
func _() {
fmt.Println(bMsg) //@def("bMsg", bMsg)
fmt.Println(undef) //@diag("undef", re"undefined|undeclared")
}
-- b/b2.go --
package b
const bMsg = "b" //@loc(bMsg, "bMsg")