1
0
mirror of https://github.com/golang/go synced 2024-11-18 21:44:45 -07:00
The Go programming language
Go to file
Heschi Kreinick 563860d11d internal/imports: fix use of uninitialized resolvers
Resolvers are lazy initialized. That worked fine until the addition of
the scan semaphore -- it's not a good idea to create that lazily, since
you can't synchronize on a channel that doesn't exist.

Specifically, this caused a gopls hang when completion finished without
needing to use the resolver. In that case, we'd call ClearForNewScan/Mod
on an uninitialized resolver, and then hang receiving from a nil
channel.

Instead, eagerly initialize where convenient, and particularly the scan
semaphore.

Change-Id: I3adb1ae76b751650995e50f50346e06fd9c9f88d
Reviewed-on: https://go-review.googlesource.com/c/tools/+/214258
Run-TryBot: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-01-10 00:40:31 +00:00
benchmark/parse benchmark/parse: add unit test for String function 2019-12-16 21:43:19 +00:00
blog blog: fix swallowed error 2019-12-18 19:17:56 +00:00
cmd cmd/gopls: delete legacy gopls 2019-12-27 05:11:00 +00:00
container/intsets x/tools/container/intsets: add LowerBound 2017-08-21 16:11:21 +00:00
cover cover: significantly improve the speed of cover.ParseProfiles 2019-10-24 07:44:52 +00:00
go go/ssa: add position data in indexed range loops 2020-01-09 17:47:59 +00:00
godoc godoc/static: update copyright year to 2013 2020-01-02 16:51:58 +00:00
gopls gopls/integration: save more precise parsing information 2020-01-02 18:22:54 +00:00
imports imports: pass more of the environment 2019-12-17 00:36:01 +00:00
internal internal/imports: fix use of uninitialized resolvers 2020-01-10 00:40:31 +00:00
playground playground/socket: handle multi-file present play snippets 2019-12-03 04:46:16 +00:00
present all: remove many cases of space-space 2019-12-30 19:07:42 +00:00
refactor all: fix more typos 2019-09-11 15:13:14 +00:00
txtar txtar/archive: add unit test function for Format 2019-11-20 20:49:00 +00:00
.gitattributes
.gitignore .gitignore: roll back ".gitignore: ignore emacs backup files" 2018-02-13 00:43:28 +00:00
AUTHORS
codereview.cfg
CONTRIBUTING.md CONTRIBUTING.md: remove note about not accepting Pull Requests 2018-03-14 18:02:17 +00:00
CONTRIBUTORS
go.mod internal/lsp: create parseModHandle for storing go.mod data 2019-12-13 22:03:54 +00:00
go.sum internal/lsp: create parseModHandle for storing go.mod data 2019-12-13 22:03:54 +00:00
LICENSE
PATENTS
README.md README: switch to Markdown and add links 2017-09-27 05:40:07 +00:00

Go Tools

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.

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.