`cmd/go: 对于不存在的 go 源文件,这是一个令人困惑的错误,

2j4z5cfb  于 4个月前  发布在  Go
关注(0)|答案(7)|浏览(36)

对于这个问题,我并没有在/Users/rsc/go/src目录下。这只是一个错误,它在寻找一个名为notexist.go的标准包。它应该给我显示一个更像“没有这样的文件notexist.go”的错误。
/cc @bcmills@jayconrod@matloob

relj7zay

relj7zay1#

来自发布团队的Ping:关于这个发布阻塞器的任何更新吗?

643ylb08

643ylb082#

简要查看了这个问题,但无法重现。在1.17.1版本的模块外,我看到了这个:

$ go build notexist.go
no required module provides package notexist.go: go.mod file not found in current directory or any parent directory; see 'go help modules'

在模块内:

$ go build notexist.go
no required module provides package notexist.go; to add it:
        go get notexist.go

这是哪个版本的Go?go env表示什么?

weylhg0b

weylhg0b3#

这是1.18里程碑的内容;现在要转移到1.19了吗?谢谢。
(当前的错误不太好,因为它将nonexist.go视为包的名称。从技术上讲这是正确的,但也许如果不存在,我们可以将尾随的“.go”视为特殊情况并给出不同的错误消息。)

fjaof16o

fjaof16o4#

抱歉,无意关闭这个。

omqzjyyz

omqzjyyz5#

这在修复#48907后有所改善,但仍不理想。

xyhw6mcr

xyhw6mcr6#

这也证明了go list -e错误报告bug的另一组。有一系列的base.Fatalf calls in load.GoFilesPackage,它们同样可以很容易地被当作错误返回。

ajsxfq5m

ajsxfq5m7#

https://go.dev/cl/386496提到了这个问题:cmd/go: improve error handling for nonexistent files

相关问题