Tags: toshitanian/tools
Tags
gopls/doc: include instructions for compiling generic code Change-Id: Ia7855890c72f9e376816a7c2d71f9715c7f2eb9f Reviewed-on: https://go-review.googlesource.com/c/tools/+/330369 Trust: Robert Findley <rfindley@google.com> Run-TryBot: Robert Findley <rfindley@google.com> Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com> gopls-CI: kokoro <noreply+kokoro@google.com> TryBot-Result: Go Bot <gobot@golang.org>
go/ast/astutil: fix panic when rewriting multi-argument type instances Use the typeparams helper package to fix AST rewriting in go/ast/astutil when encountering the new ListExpr type. This is liable to break in the future when the go/ast API changes, but at least it will be easy to find by virtue of using internal/typeparams. Fixes golang/vscode-go#1551 Change-Id: Id34bbcdede9024ed9818bef6d73a19e993dd76a8 Reviewed-on: https://go-review.googlesource.com/c/tools/+/326131 Trust: Robert Findley <rfindley@google.com> Run-TryBot: Robert Findley <rfindley@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> gopls-CI: kokoro <noreply+kokoro@google.com> TryBot-Result: Go Bot <gobot@golang.org>
gopls/internal/hooks: add Staticcheck's quickfix category of checks Staticcheck's new quickfix category contains optional code refactorings, such as turning a chain of if/else-if into a switch statement, or simplifying boolean expressions. These checks produce diagnostics with the "hint" or "information" severities. Most use "hint", which produces a subtle hint in VSCode's UI that a refactoring is available. "information" produces a blue underline and is only used for those checks that have a very high likelyhood of improving code readability. Change-Id: I8f5b4eca67eb6b4e45c17510459d83eb673384e3 Reviewed-on: https://go-review.googlesource.com/c/tools/+/322492 Trust: Dominik Honnef <dominik@honnef.co> Run-TryBot: Dominik Honnef <dominik@honnef.co> gopls-CI: kokoro <noreply+kokoro@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Rebecca Stambler <rstambler@golang.org>
internal/lsp/cache: trim more stuff in ParseExported mode Despite the name, ParseExported only hollowed out declarations -- it didn't actually drop any from the AST. This leaves a fair amount of unexported crud behind. Unfortunately, there are a *lot* of ways to expose an unexported declaration from an exported one, and it can be done across files. Because of that, discarding unexported declarations requires a lot of work. This CL implements a decent attempt at pruning as much as possible from the AST in ParseExported mode. First, we analyze the AST of all the files in the package for exported uses of unexported identifiers, iterating to a fixed point. Then, we type check those ASTs. If there are missing identifiers (probably due to a bug in the dependency analysis) we use those errors to re-parse. After that we give up and fall back to the older, less effective trimming. The pkg type changes slightly to accomodate the new control flow. We have to analyze all the files at once because an unexported type might be exposed in another file. Unfortunately, that means we can't parse a single file at a time any more -- the result of parsing a file depends on the result of parsing its siblings. To avoid cache corruption, we have to do the parsing directly in type checking, uncached. This, in turn, required changes to the PosTo* functions. Previously, they operated just on files, but a file name is no longer sufficient to get a ParseExported AST. Change them to work on Packages instead. I squeezed in a bit of refactoring while I was touching them. Change-Id: I61249144ffa43ad645ed38d79e873e3998b0f38d Reviewed-on: https://go-review.googlesource.com/c/tools/+/312471 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>
PreviousNext