[gopls-release-branch.0.7] all: merge master into gopls-release-branch.0.7

acac93965 go/analysis/passes/bools: add typeparams test
ac2ed988c go/analysis/passes/printf: warn against using non-error interface values with %w
378b9e1d5 internal/lsp/analysis: add typeparams tests for nonewvars and noresultvalues
24389d4d0 internal/lsp: use the correct dynamic registration booleans
074820e17 go/analysis/passes/usesgenerics: a new analysis to detect generic code
94178a22b internal/lsp: use source.Offset instead of tok.Offset
0b930fbaf cmd/goimports: recommend go install instead of go get in docs
c83725bbd go/analysis/passes/loopclosure: add typeparams test
18fa84021 internal/lsp/semantic: prepare for generics
1af23bdac go/analysis/passes/assign: add typeparams test
ee04797aa go/types/objectpath: canonical order for methods
c5188f24a gopls/doc/advanced.md: update unstable version installation instruction
d477ef3e9 go/analysis/passes/atomic: add a test that uses typeparams
2dc275501 internal/lsp/protocol: update LSP definitions and stubs
81efdbcac cover: add function to parse profiles from an io.Reader
36e7bf96e internal/lsp/analysis/unusedparams: add tests for generics
db89b5a19 internal/lsp: handle nil pointer in fixInitStmt
ccaa90747 go/analysis/passes/unmarshal: allow unmarshalling to a type parameter
0ebff1a95 go/ast/astutil: update PathEnclosingInterval to handle type parameters
942994fc7 internal/typeparams: use alias rather than indirection for IndexListExpr
13c407cf4 go/ast/inspector: add support for the new IndexListExpr node
58ad7eb1a go/types/objectpath: add support for type parameters
3883e4a54 go/internal/gcimporter: allow both prefixes and subscripts for tparams
6f5fd9bf4 internal/lsp: add parameterized slice test for simplifyslice analysis
2189684b1 internal/typeparams: use NewSignatureType, IsMethodSet, and Context
e89823e06 x/tools/go/internal/gcimporter: exclude a file from TestImportTypeparamTests
1c35f2a5d internal/lsp/analysis: quick-fix to remove unnecessary type arguments
7d467dcfb internal/lsp: support go.work outside of experimental
d9648c991 go/analysis: test errorsas analysis with type params
d42c92b46 internal/lsp/analysis/fillreturns: skip any parameterized functions
5dbd5e40d internal/typeparams: filter out API diffs related to types.Environment
df9a164fb Revert "internal/typeparams: hide go1.18 API usage behind a build constraint"
0df0ca0f4 internal/typeparams: hide go1.18 API usage behind a build constraint
7898fe60e internal/lsp/analysis: move implementmissing logic into undeclared
da36f796b go/internal/gcimporter: skip typeparam import tests on unified builders
64bbad1f5 internal/lsp/debug: improve readability of session options
b182fdeb5 go/analysis/passes/tests: check example output
ba6b94c73 internal/lsp: add fields to anonymous struct info
939195fa0 go/ssa: skip the "constraints" package in TestStdlib
e1e06b848 go/internal/gcimporter: temporarily skip the contraints package on the unified builder
6d1e33f1d internal/lsp: handle panic in hoverRune by using token.Pos
c8db76165 internal/lsp/cache: keep going on failed analyzers
284795867 internal/lsp/analysis: add a useany analyzer
efaec4e63 go/pointer: skip tests that depend on an unstable API changed in Go 1.18
ecbcf3a28 go/callgraph/vta: improve support for function value flow
b98090b83 internal/lsp/analysis/implementmissing: add analyzer
0d12d39b8 internal/typeparams: update to the new Instances API
fe076c893 internal/typesinternal: document ReadGo116ErrorData
91c880c34 go/internal/gcimporter: add support for exporting the 1.18 export format
d2417d5c0 gopls/doc: add instructions for the new "kokoro rerun" feature
464a8874c internal/lsp/templates: replace panic by logging
a0016a2ad internal/lsp/diagnostics: avoid erroneous error message for orphaned files
7559231ed internal/lsp/command: fix typo in comment
2758b0478 gopls/api-diff: create api-diff command for gopls api
aba0c5f15 go/callgraph/vta: optimize scc type initialization
1a7ca9342 internal/lsp/source: update SuggestedFixFunc to accept source.Snapshot
76d449422 internal/lsp: fix panic in find references on Error
4ba3eff04 gopls/doc: remove -tags=typeparams from generic build instructions
02e523846 go/internal/gcimporter: rename instType to instanceType
0cffec9e3 go/internal/gcimporter: update iimport.go to support type parameters
5492d01d9 internal/lsp/testdata: update inferred.go to use hoverdef
92077074d go/internal/gcimporter: skip TestIExportData_stdlib on go1.18
cd7c003cd internal/lsp: add support for hovering runes
258ee27c3 internal/lsp/template: implement completions for template files
384e5daa5 go/ssa: keep the ops doc sorted alphabetically
e7de6523a internal/lsp: produce "method" in place of "member" as per the spec
915f62094 go/ssa: fix slice to array ptr conversions for named type
a568412ca go/callgraph/vta: fix call site computation bug
295a39ba3 internal/lsp: remove the TODO and add a test for the hover panic
c163c3172 gopls: add more instructions for working with Bazel and gopls
076821bd2 internal/typeparams: update MultiIndexExpr to IndexListExpr
2cae65cc5 internal/typeparams: follow changes to Type in the go/ast and go/types
0a6f08061 internal/lsp: check InRange before calling token.Offset
e5f719fbe internal/lsp/source: consider test variants when finding pkg from pos
360456621 go/analysis/passes/testinggoroutine: fix panic in goStmtFun
d39bbca0a gopls: consistently capitalize enum variants for symbolStyle
4e109c570 gopls: use new "codelenses" config key in docs over deprecated "codelens"
7391fc19f gopls/doc: update generic code section of advanced.md
3b801c8b8 internal/lsp: exclude node_modules in the workspace root by default

Change-Id: I9e6d85aa0a8506c63d082e1a73c749781dccf720
tree: 09a704cd35c4e6d421975422704cd68269a44d33
  1. benchmark/
  2. blog/
  3. cmd/
  4. container/
  5. copyright/
  6. cover/
  7. go/
  8. godoc/
  9. gopls/
  10. imports/
  11. internal/
  12. playground/
  13. present/
  14. refactor/
  15. txtar/
  16. .gitattributes
  17. .gitignore
  18. .prettierrc
  19. AUTHORS
  20. codereview.cfg
  21. CONTRIBUTING.md
  22. CONTRIBUTORS
  23. go.mod
  24. go.sum
  25. LICENSE
  26. PATENTS
  27. README.md
README.md

Go Tools

PkgGoDev

This subrepository holds the source for various packages and tools that support the Go programming language.

Some of the tools, godoc and vet for example, are included in binary Go distributions.

Others, including the Go guru and the test coverage tool, can be fetched with go get.

Packages include a type-checker for Go and an implementation of the Static Single Assignment form (SSA) representation for Go programs.

Download/Install

The easiest way to install is to run go get -u golang.org/x/tools/.... You can also manually git clone the repository to $GOPATH/src/golang.org/x/tools.

JS/CSS Formatting

This repository uses prettier to format JS and CSS files.

The version of prettier used is 1.18.2.

It is encouraged that all JS and CSS code be run through this before submitting a change. However, it is not a strict requirement enforced by CI.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.

The main issue tracker for the tools repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/tools/(your subdir):” in the subject line, so it is easy to find.