Historically, vet had always been unhappy about encoding/xml itself: method MarshalXML(e *xml.Encoder, start xml.StartElement) error should have signature MarshalXML(*xml.Encoder, xml.StartElement) error This dates back to the time when vet couldn't depend on type information. It compared the type expressions directly as strings, which was a problem when the code was in encoding/xml itself. There, the function parameters are *Encoder and StartElement, not *xml.Encoder and xml.StartElement. However, vet has been depending on type information for a while, so this restriction no longer makes sense. The analyzer almost got it right, but the only stopgap was a piece of the old code that tried to compare type expression strings. Remove it; typeString already deals with these edge cases for us. To ensure vet remains happy with encoding/xml, add a very simple test for it. The package now has zero reports, so the fact that its source has zero "// want" comments is appropriate. Finally, remove some long unused parameters from matchParamType. Change-Id: Iab3ed57da7bc4a80522ae21e62b67e7828b97c89 Reviewed-on: https://go-review.googlesource.com/c/tools/+/168058 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Matloob <matloob@golang.org> |
||
|---|---|---|
| .. | ||
| asmdecl | ||
| assign | ||
| atomic | ||
| atomicalign | ||
| bools | ||
| buildssa | ||
| buildtag | ||
| cgocall | ||
| composite | ||
| copylock | ||
| ctrlflow | ||
| deepequalerrors | ||
| 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.