Skip to content

x/tools/gopls: pull diagnostic support, continuedΒ #70199

@findleyr

Description

@findleyr

Following up on #53275, there are a few more improvements I'd like to make to pull diagnostics so that they are comparable in performance to push diagnostics, at which point we can enable them by default:

  • Rewrite the bottom-up graph traversal of analysis nodes: in the common case, all dependency information will be a cache hit (including memoized keys and encoded summaries in the file cache). Therefore, the bottom-up traversal of the full graph is a significant overhead when repeatedly querying diagnostics.
  • Rewrite the bottom-up graph traversal to build package handles, for similar reasons.
  • Refactor the fact decoder to operate on shallow fact encoding, so that facts in transitive dependencies can be retrieved (and decoded) on demand. (This could have a huge impact on performance).
  • Add support for go.mod and go.work diagnostics (requires refactoring the way we diagnose the workspace).

CC @adonovan

Metadata

Metadata

Assignees

No one assigned

    Labels

    ToolsThis label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions