-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Closed
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.ToolsThis 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/performanceIssues related to gopls performance (CPU, memory, etc).Issues related to gopls performance (CPU, memory, etc).
Milestone
Description
We really only use dependency ASTs for finding definitions and documentation, and we can avoid extra work and AST traversal by precomputing what we need. In most cases, dependencies are only type-checked once. I propose this alternative:
- We type-check all packages in "full" mode (allowing us to use the type information for analyses).
- Instead of having different parse modes for files, we have different modes for
PackageHandles, one for workspace packages (PackageHandle) and one for dependencies (ExportedPackageHandle).PackageHandleremains the same as it is now, whileExportedPackageHandledoes not contain references to the package'sParseGoHandles. Rather, it contains a pre-computed table of information that can be used for various features. My guess is that it will be a table oftoken.Pos-> documentation, but I'm sure I missed things.
/cc @heschik @ianthehat
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.ToolsThis 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/performanceIssues related to gopls performance (CPU, memory, etc).Issues related to gopls performance (CPU, memory, etc).