# Regression test for https://go.dev/issue/51125: # Relative import paths (a holdover from GOPATH) were accidentally allowed in module mode. cd $WORK # Relative imports should not be allowed with a go.mod file. ! go run driver.go stderr '^driver.go:3:8: "./mypkg" is relative, but relative import paths are not supported in module mode$' go list -e -f '{{with .Error}}{{.}}{{end}}' -deps driver.go stdout '^driver.go:3:8: "./mypkg" is relative, but relative import paths are not supported in module mode$' ! stderr . # Relative imports should not be allowed in module mode even without a go.mod file. rm go.mod ! go run driver.go stderr '^driver.go:3:8: "./mypkg" is relative, but relative import paths are not supported in module mode$' go list -e -f '{{with .Error}}{{.}}{{end}}' -deps driver.go stdout '^driver.go:3:8: "./mypkg" is relative, but relative import paths are not supported in module mode$' ! stderr . # In GOPATH mode, they're still allowed (but only outside of GOPATH/src). env GO111MODULE=off [!short] go run driver.go go list -deps driver.go -- $WORK/go.mod -- module example go 1.17 -- $WORK/driver.go -- package main import "./mypkg" func main() { mypkg.MyFunc() } -- $WORK/mypkg/code.go -- package mypkg import "fmt" func MyFunc() { fmt.Println("Hello, world!") }