| # 'go list' without -e should fail and print errors on stderr. |
| ! go list ./p |
| stderr '^p[/\\]b.go:2:2: expected ''package'', found ''EOF''$' |
| ! go list -f '{{range .Imports}}{{.}} {{end}}' ./p |
| stderr '^p[/\\]b.go:2:2: expected ''package'', found ''EOF''$' |
| ! go list -test ./t |
| stderr '^can''t load test package: t[/\\]t_test.go:8:1: expected declaration, found ʕ' |
| ! go list -test -f '{{range .Imports}}{{.}} {{end}}' ./t |
| stderr '^can''t load test package: t[/\\]t_test.go:8:1: expected declaration, found ʕ' |
| |
| # 'go list -e' should report imports, even if some files have parse errors |
| # before the import block. |
| go list -e -f '{{range .Imports}}{{.}} {{end}}' ./p |
| stdout '^fmt ' |
| |
| # 'go list' should report the position of the error if there's only one. |
| go list -e -f '{{.Error.Pos}} => {{.Error.Err}}' ./p |
| stdout 'b.go:[0-9:]+ => expected ''package'', found ''EOF''' |
| |
| # 'go test' should report the position of the error if there's only one. |
| go list -e -test -f '{{if .Error}}{{.Error.Pos}} => {{.Error.Err}}{{end}}' ./t |
| stdout 't_test.go:[0-9:]+ => expected declaration, found ʕ' |
| |
| -- go.mod -- |
| module m |
| |
| go 1.13 |
| |
| -- p/a.go -- |
| package a |
| |
| import "fmt" |
| |
| -- p/b.go -- |
| // no package statement |
| |
| -- t/t_test.go -- |
| package t |
| |
| import "testing" |
| |
| func Test(t *testing.T) {} |
| |
| // scan error |
| ʕ◔ϖ◔ʔ |