commit | e5d4b58ff5020f74d6b9085bc1db45e898c4724f | [log] [tgz] |
---|---|---|
author | Alan Donovan <adonovan@google.com> | Sat Nov 03 16:24:43 2018 -0400 |
committer | Alan Donovan <adonovan@google.com> | Thu Nov 08 19:39:40 2018 +0000 |
tree | bfd390d8c516c2999f4c0ce574347e170eb7a580 | |
parent | dfbbb7b6d4af9851715d68a9c8ac612b21592ee6 [diff] |
go/analysis/passes/cgocall: analyze raw cgo files (again) The cgocall analyzer was originally written in vet to analyze "raw" cgo files, which are type-checked on a best-effort basis. However, the go/analysis API presents analyzers with "cooked" cgo files, which are well-typed legal Go but obscure the relationship between a call C.f(...) and its arguments. Prior to this CL, cgocall attempted to "uncook" the file, which was as predictably fragile as it sounds, and it rapidly broke as the cgo recipe evolved. This change causes cgocall to parse, modify, type-check and analyze "raw" cgo files. The approach (based on dot-importing the "cooked" package) is rather too clever but should be more robust than the one it replaces. Fixes golang/go#28566 Change-Id: I3092a313c64d27153eaaa115fe8635abfed17023 Reviewed-on: https://go-review.googlesource.com/c/147317 Reviewed-by: Michael Matloob <matloob@golang.org>
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.
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
.
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.