tree 59ca16cf9df5880bb3743337244e9185e338a50a
parent 827075753a9d1db28951d9fa52deee63cdf5f857
author Robert Findley <rfindley@google.com> 1673549509 -0500
committer Robert Findley <rfindley@google.com> 1674767349 +0000

gopls/internal/lsp/cache: remove package dependence on packages.Config

The cache.pkg type was a mix of metadata-related information and type
checking information, resulting in unnecessary relationships between
type-checking results (which are shared) and loading results (which are
not shared). As a result, the experimentalPackageCacheKey was more or
less a hope that these relationships were valid.

Avoid this relationship altogether by separating the shared
type-checking result from other derived calculations. This makes the
experimentalPackageCacheKey obsolete and lays the groundwork for
type-checking from export data.

Additionally:
- revisit the package cache key to ensure it covers all inputs into
  type-checking, and make it more similar to the analysis key
- remove methods from the source.Package API that return source.Package:
  we can't have edges between packages if they are going to be
  standalone
- remove the experimentalPackageCacheKey setting
- add a test for go list errors
- use the proper types.Sizes when type-checking
- address a comment from an earlier CL in completion_test.go

Fixes golang/go#57853

Change-Id: I238913c7c8305cb534db77ebec5f062e96ed2503
Reviewed-on: https://go-review.googlesource.com/c/tools/+/461944
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
