[mirror] Go Tools
Перейти к файлу
Robert Findley 294080fd2f go/types/objectpath: break cycles through type parameters in find
When searching for objects, we naively traversed through type parameter
constraints. This leads to infinite recursion when there are cycles
through type parameter constraints.

Break these cycles by tracking type parameter names that have previously
been encountered. This ensures we walk type parameter constraints at
most once. Note that if the desired object was not found on the first
search of the constraint, there is no need to search again.

Note: this cherry-pick also adjusts a test error message to match
go1.18.

Updates golang/go#51727

Change-Id: Ifcdf4b138a0e95441e485bbb9ee21c01b04eaed4
Reviewed-on: https://go-review.googlesource.com/c/tools/+/393376
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
(cherry picked from commit d67eab4bce)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/393635
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2022-03-29 15:07:52 +00:00
benchmark/parse benchmark/parse: add unit test for String function 2019-12-16 21:43:19 +00:00
blog copyright: test that all files in the repo have copyright notices 2021-01-11 22:19:46 +00:00
cmd cmd/fiximports: skip TestDryRun on plan9-arm 2022-01-24 16:42:25 +00:00
container/intsets container/intsets: fix bug in UnionWith 'changed' result 2021-12-28 19:29:29 +00:00
copyright gopls/api-diff: create api-diff command for gopls api 2021-09-17 17:58:44 +00:00
cover cover: add function to parse profiles from an io.Reader 2021-10-05 03:23:35 +00:00
go go/types/objectpath: break cycles through type parameters in find 2022-03-29 15:07:52 +00:00
godoc godoc: fix addNames for generics 2022-01-06 16:18:51 +00:00
gopls gopls/internal/regtest/codelens: use the test's deadline instead of a hard-coded timeout 2022-01-24 16:28:24 +00:00
imports all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
internal gopls/internal/regtest/codelens: use the test's deadline instead of a hard-coded timeout 2022-01-24 16:28:24 +00:00
playground playground: remove /share registration, add Proxy 2021-02-25 15:03:53 +00:00
present present: don't drop commands that immediately follow text 2021-03-19 17:28:02 +00:00
refactor all: various test fixes related to any 2021-12-09 15:47:16 +00:00
txtar txtar/archive: ignore invalid file separators 2021-07-26 17:18:48 +00:00
.gitattributes tools: copying .gitattributes to all subrepositories (fixes windows build) 2014-12-23 06:32:51 +00:00
.gitignore .gitignore: roll back ".gitignore: ignore emacs backup files" 2018-02-13 00:43:28 +00:00
.prettierrc all: add a section on JS/CSS formatting to README 2020-05-28 15:31:34 +00:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
CONTRIBUTING.md CONTRIBUTING.md: remove note about not accepting Pull Requests 2018-03-14 18:02:17 +00:00
CONTRIBUTORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
LICENSE LICENSE: add 2012-03-17 15:20:58 +11:00
PATENTS go.empty: add PATENTS file to the subrepo. 2012-04-16 11:24:04 +10:00
README.md all: update install commands to go install pkg@version 2021-10-27 02:41:01 +00:00
codereview.cfg tools: add codereview.cfg 2015-03-18 17:04:00 +00:00
go.mod all: update dependencies post-release 2021-10-26 18:40:06 +00:00
go.sum all: update dependencies post-release 2021-10-26 18:40:06 +00:00

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 install.

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 install golang.org/x/tools/...@latest.

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.