-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Closed
Labels
FrozenDueToAgeToolsThis label describes issues relating to any tools in the x/tools repository.This label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.Issues related to the Go language server, gopls.gopls/metadataIssues related to metadata loading in goplsIssues related to metadata loading in gopls
Milestone
Description
Caveat: this is an abstract issue, but sufficiently fundamental to warrant independent tracking.
In two places inside gopls, there is a notion of "previously seen" files that affects gopls behavior:
- cache.View.knownFile, which is used to determine if a file is relevant to a given view
- cache.snapshot.FindFile (and anything that walks the snapshot.files set), which is used to filter to relevant or active files
These notions have no intrinsic definition: by construction they are path dependent. As such, they have been a source of historical and current bugs (for example, changing configuration can invalidate the set of known files, which leads to undefined behavior). They are also a source of test flakes, which is really just a manifestation of underlying bugginess.
We should replace these with well-defined notions, on a case by case basis. For example "is a file in the workspace directory", or "is this file in a loaded package, after loading completes".
bcmills
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeToolsThis label describes issues relating to any tools in the x/tools repository.This label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.Issues related to the Go language server, gopls.gopls/metadataIssues related to metadata loading in goplsIssues related to metadata loading in gopls