The recursive stringer check should report cases such as func (x T) String() string { return fmt.Sprint(x) } in which the receiver x (or possibly &x) was passed into a fmt print call. However, in translating it from the go/ast to the go/types representation, I inadvertently made it report any situation in which a value of type T was passed to fmt, even when the value is not x, as in: func (cons *cons) String() string { ... fmt.Sprint(cons.cdr) ... } Fixed and tested. Change-Id: I57e88755c9989deaaad45cc306a604f3db4ee269 Reviewed-on: https://go-review.googlesource.com/c/149616 Reviewed-by: Michael Matloob <matloob@golang.org> Run-TryBot: Michael Matloob <matloob@golang.org> |
||
---|---|---|
.. | ||
asmdecl | ||
assign | ||
atomic | ||
bools | ||
buildssa | ||
buildtag | ||
cgocall | ||
composite | ||
copylock | ||
ctrlflow | ||
findcall | ||
httpresponse | ||
inspect | ||
internal/analysisutil | ||
loopclosure | ||
lostcancel | ||
nilfunc | ||
nilness | ||
pkgfact | ||
printf | ||
shadow | ||
shift | ||
stdmethods | ||
structtag | ||
tests | ||
unmarshal | ||
unreachable | ||
unsafeptr | ||
unusedresult | ||
README |
README
This directory does not contain a Go package, but acts as a container for various analyses that implement the golang.org/x/tools/go/analysis API and may be imported into an analysis tool. By convention, each package foo provides the analysis, and each command foo/cmd/foo provides a standalone driver.