mirror of https://github.com/golang/go.git
In typeCheckDiagnostics, we have logic to suppress go list and type checking errors based on the presence of other errors. Nobody seems to know why the logic is exactly what it is, and suppressing list errors means that bad //go:embed patterns don't show up. Intuitively, it makes sense to me that we don't want to type check if listing or parsing fails: list errors mean that whole files may be missing, and parsing errors may wipe out arbitrary chunks of files. There's little point reporting errors from type checking that. However, list errors and parse errors should be mostly orthogonal: go list parses very little of the file and in practice only reports errors parsing the package statement. So, at least for now, we report both parse and list errors, and stop there if there are any. Finally, move the suppression logic to the actual typeCheck function that generates the diagnostics. typeCheckDiagnostics is the primary consumer, but I think it's better to do the suppression at the source. Because we are now showing list errors, and they are prone to getting stuck due to bad overlay support, a couple of tests now require 1.16. Change-Id: I7801e44c4d3da30bda61e0c1710a2f52de6215f5 Reviewed-on: https://go-review.googlesource.com/c/tools/+/295414 Trust: Heschi Kreinick <heschi@google.com> Run-TryBot: Heschi Kreinick <heschi@google.com> gopls-CI: kokoro <noreply+kokoro@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Robert Findley <rfindley@google.com> Reviewed-by: Rebecca Stambler <rstambler@golang.org> |
||
|---|---|---|
| .. | ||
| analysisinternal | ||
| apidiff | ||
| event | ||
| fakenet | ||
| fastwalk | ||
| gocommand | ||
| gopathwalk | ||
| imports | ||
| jsonrpc2 | ||
| lsp | ||
| memoize | ||
| packagesinternal | ||
| proxydir | ||
| span | ||
| stack | ||
| testenv | ||
| tool | ||
| typesinternal | ||
| xcontext | ||