From 1ef994f2c98c037a57b7b0db7d4d8021ae645f12 Mon Sep 17 00:00:00 2001 From: Michael Matloob Date: Mon, 18 Nov 2019 14:06:22 -0500 Subject: [PATCH] go/analysis/passes: ensure diagnostic-reporting analyses have exported Doc This adds an exported Doc constant to the packages for the analyses that don't have them that contains the Analyzer.Doc string for the package's Analyzer. The godoc for the Doc constant can then be linked to in urls reported by analysis tools. Change-Id: I39df71abcb29bbddf1866286d63aa5216b6224d8 Reviewed-on: https://go-review.googlesource.com/c/tools/+/207612 Run-TryBot: Michael Matloob Reviewed-by: Rebecca Stambler --- go/analysis/passes/asmdecl/asmdecl.go | 4 +++- go/analysis/passes/atomicalign/atomicalign.go | 4 +++- go/analysis/passes/bools/bools.go | 4 +++- go/analysis/passes/buildtag/buildtag.go | 4 +++- go/analysis/passes/cgocall/cgocall.go | 4 ++-- go/analysis/passes/errorsas/errorsas.go | 4 ++-- go/analysis/passes/printf/printf.go | 4 ++-- go/analysis/passes/shift/shift.go | 4 +++- go/analysis/passes/unmarshal/unmarshal.go | 4 ++-- 9 files changed, 23 insertions(+), 13 deletions(-) diff --git a/go/analysis/passes/asmdecl/asmdecl.go b/go/analysis/passes/asmdecl/asmdecl.go index c2e89ee2dc..5c93a4f703 100644 --- a/go/analysis/passes/asmdecl/asmdecl.go +++ b/go/analysis/passes/asmdecl/asmdecl.go @@ -22,9 +22,11 @@ import ( "golang.org/x/tools/go/analysis/passes/internal/analysisutil" ) +const Doc = "report mismatches between assembly files and Go declarations" + var Analyzer = &analysis.Analyzer{ Name: "asmdecl", - Doc: "report mismatches between assembly files and Go declarations", + Doc: Doc, Run: run, } diff --git a/go/analysis/passes/atomicalign/atomicalign.go b/go/analysis/passes/atomicalign/atomicalign.go index 504b1c2123..7387df0922 100644 --- a/go/analysis/passes/atomicalign/atomicalign.go +++ b/go/analysis/passes/atomicalign/atomicalign.go @@ -19,9 +19,11 @@ import ( "golang.org/x/tools/go/ast/inspector" ) +const Doc = "check for non-64-bits-aligned arguments to sync/atomic functions" + var Analyzer = &analysis.Analyzer{ Name: "atomicalign", - Doc: "check for non-64-bits-aligned arguments to sync/atomic functions", + Doc: Doc, Requires: []*analysis.Analyzer{inspect.Analyzer}, Run: run, } diff --git a/go/analysis/passes/bools/bools.go b/go/analysis/passes/bools/bools.go index fbc1f7ea91..5ae47d8948 100644 --- a/go/analysis/passes/bools/bools.go +++ b/go/analysis/passes/bools/bools.go @@ -17,9 +17,11 @@ import ( "golang.org/x/tools/go/ast/inspector" ) +const Doc = "check for common mistakes involving boolean operators" + var Analyzer = &analysis.Analyzer{ Name: "bools", - Doc: "check for common mistakes involving boolean operators", + Doc: Doc, Requires: []*analysis.Analyzer{inspect.Analyzer}, Run: run, } diff --git a/go/analysis/passes/buildtag/buildtag.go b/go/analysis/passes/buildtag/buildtag.go index 5a441e609b..78176f1011 100644 --- a/go/analysis/passes/buildtag/buildtag.go +++ b/go/analysis/passes/buildtag/buildtag.go @@ -16,9 +16,11 @@ import ( "golang.org/x/tools/go/analysis/passes/internal/analysisutil" ) +const Doc = "check that +build tags are well-formed and correctly located" + var Analyzer = &analysis.Analyzer{ Name: "buildtag", - Doc: "check that +build tags are well-formed and correctly located", + Doc: Doc, Run: runBuildTag, } diff --git a/go/analysis/passes/cgocall/cgocall.go b/go/analysis/passes/cgocall/cgocall.go index d499f3c329..1b7b8d2de7 100644 --- a/go/analysis/passes/cgocall/cgocall.go +++ b/go/analysis/passes/cgocall/cgocall.go @@ -23,7 +23,7 @@ import ( const debug = false -const doc = `detect some violations of the cgo pointer passing rules +const Doc = `detect some violations of the cgo pointer passing rules Check for invalid cgo pointer passing. This looks for code that uses cgo to call C code passing values @@ -34,7 +34,7 @@ or slice to C, either directly, or via a pointer, array, or struct.` var Analyzer = &analysis.Analyzer{ Name: "cgocall", - Doc: doc, + Doc: Doc, RunDespiteErrors: true, Run: run, } diff --git a/go/analysis/passes/errorsas/errorsas.go b/go/analysis/passes/errorsas/errorsas.go index cd37407144..b80271afb9 100644 --- a/go/analysis/passes/errorsas/errorsas.go +++ b/go/analysis/passes/errorsas/errorsas.go @@ -16,14 +16,14 @@ import ( "golang.org/x/tools/go/types/typeutil" ) -const doc = `report passing non-pointer or non-error values to errors.As +const Doc = `report passing non-pointer or non-error values to errors.As The errorsas analysis reports calls to errors.As where the type of the second argument is not a pointer to a type implementing error.` var Analyzer = &analysis.Analyzer{ Name: "errorsas", - Doc: doc, + Doc: Doc, Requires: []*analysis.Analyzer{inspect.Analyzer}, Run: run, } diff --git a/go/analysis/passes/printf/printf.go b/go/analysis/passes/printf/printf.go index 38a752c957..a81dba9125 100644 --- a/go/analysis/passes/printf/printf.go +++ b/go/analysis/passes/printf/printf.go @@ -33,14 +33,14 @@ func init() { var Analyzer = &analysis.Analyzer{ Name: "printf", - Doc: doc, + Doc: Doc, Requires: []*analysis.Analyzer{inspect.Analyzer}, Run: run, ResultType: reflect.TypeOf((*Result)(nil)), FactTypes: []analysis.Fact{new(isWrapper)}, } -const doc = `check consistency of Printf format strings and arguments +const Doc = `check consistency of Printf format strings and arguments The check applies to known functions (for example, those in package fmt) as well as any detected wrappers of known functions. diff --git a/go/analysis/passes/shift/shift.go b/go/analysis/passes/shift/shift.go index 0db95dafb0..1f3df07ccd 100644 --- a/go/analysis/passes/shift/shift.go +++ b/go/analysis/passes/shift/shift.go @@ -21,9 +21,11 @@ import ( "golang.org/x/tools/go/ast/inspector" ) +const Doc = "check for shifts that equal or exceed the width of the integer" + var Analyzer = &analysis.Analyzer{ Name: "shift", - Doc: "check for shifts that equal or exceed the width of the integer", + Doc: Doc, Requires: []*analysis.Analyzer{inspect.Analyzer}, Run: run, } diff --git a/go/analysis/passes/unmarshal/unmarshal.go b/go/analysis/passes/unmarshal/unmarshal.go index d019ecef15..f9cc993cbb 100644 --- a/go/analysis/passes/unmarshal/unmarshal.go +++ b/go/analysis/passes/unmarshal/unmarshal.go @@ -16,14 +16,14 @@ import ( "golang.org/x/tools/go/types/typeutil" ) -const doc = `report passing non-pointer or non-interface values to unmarshal +const Doc = `report passing non-pointer or non-interface values to unmarshal The unmarshal analysis reports calls to functions such as json.Unmarshal in which the argument type is not a pointer or an interface.` var Analyzer = &analysis.Analyzer{ Name: "unmarshal", - Doc: doc, + Doc: Doc, Requires: []*analysis.Analyzer{inspect.Analyzer}, Run: run, }