- Go 99.1%
- JavaScript 0.5%
- CSS 0.2%
- Go Template 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Reject moves where remaining code references an unexported field/method of a moving declaration. To do this, "buildSymbolRefGraph" registers every struct field declared within a top-level declaration as a node, with an implicit edge from the decl to the field (so fields move with their declaration). It also registers an implicit edge from an interface type to its method. In "collect", we already record explicit edges for field references, but now it also records references to every field for unkeyed literals. remainingReferencesMoving reports an illegal reference when a staying decl has an explicit edge to an unexported field/method in the moving set. Since fields are now in the moving set, the name conflict check in canMove must skip objects that aren't package-level (so we don't have a false conflict between a method name and a package-level name in dest). For golang/go#70583 Change-Id: I7163c896aed8b9c8fd349c73637c9c7f671fc52b Reviewed-on: https://go-review.googlesource.com/c/tools/+/856421 Reviewed-by: Hongxiang Jiang <hxjiang@golang.org> Auto-Submit: Madeline Kalil <mkalil@google.com> LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> |
||
| benchmark/parse | ||
| blog | ||
| cmd | ||
| container/intsets | ||
| copyright | ||
| cover | ||
| go | ||
| gopls | ||
| imports | ||
| internal | ||
| playground | ||
| present | ||
| refactor | ||
| txtar | ||
| .gitattributes | ||
| .gitignore | ||
| .prettierrc | ||
| codereview.cfg | ||
| CONTRIBUTING.md | ||
| deps_test.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| PATENTS | ||
| README.md | ||
Go Tools
This repository provides the golang.org/x/tools module, comprising
various tools and packages mostly for static analysis of Go programs,
some of which are listed below.
Use the "Go reference" link above for more information about any package.
It also contains the
golang.org/x/tools/gopls
module, whose root package is a language-server protocol (LSP) server for Go.
An LSP server analyses the source code of a project and
responds to requests from a wide range of editors such as VSCode and
Vim, allowing them to support IDE-like functionality.
Selected commands:
cmd/goimportsformats a Go program likego fmtand additionally inserts import statements for any packages required by the file after it is edited.cmd/callgraphprints the call graph of a Go program.cmd/digraphis a utility for manipulating directed graphs in textual notation.cmd/stringergenerates declarations (including aStringmethod) for "enum" types.cmd/toolstashis a utility to simplify working with multiple versions of the Go toolchain.
These commands may be fetched with a command such as
go install golang.org/x/tools/cmd/goimports@latest
Selected packages:
-
go/ssaprovides a static single-assignment form (SSA) intermediate representation (IR) for Go programs, similar to a typical compiler, for use by analysis tools. -
go/packagesprovides a simple interface for loading, parsing, and type checking a complete Go program from source code. -
go/analysisprovides a framework for modular static analysis of Go programs. -
go/callgraphprovides call graphs of Go programs using a variety of algorithms with different trade-offs. -
go/ast/inspectorprovides an optimized means of traversing a Go parse tree for use in analysis tools. -
go/cfgprovides a simple control-flow graph (CFG) for a Go function. -
go/gcexportdataandgo/gccgoexportdataread and write the binary files containing type information used by the standard andgccgocompilers. -
go/types/objectpathprovides a stable naming scheme for named entities ("objects") in thego/typesAPI.
Numerous other packages provide more esoteric functionality.
Contributing
This repository uses Gerrit for code changes. To learn how to submit changes, see https://go.dev/doc/contribute.
The git repository is https://go.googlesource.com/tools.
The main issue tracker for the tools repository is located at https://go.dev/issues. Prefix your issue with "x/tools/(your subdir):" in the subject line, so it is easy to find.
JavaScript and 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.