...
Package shadow
Package shadow defines an Analyzer that checks for shadowed variables.
Analyzer shadow
shadow: check for possible unintended shadowing of variables
This analyzer check for shadowed variables.
A shadowed variable is a variable declared in an inner scope
with the same name and type as a variable in an outer scope,
and where the outer variable is mentioned after the inner one
is declared.
(This definition can be refined; the module generates too many
false positives and is not yet enabled by default.)
For example:
func BadRead(f *os.File, buf []byte) error {
var err error
for {
n, err := f.Read(buf) // shadows the function variable 'err'
if err != nil {
break // causes return of wrong value
}
foo(buf)
}
return err
}
Variables
var Analyzer = &analysis.Analyzer{
Name: "shadow",
Doc: analysisutil.MustExtractDoc(doc, "shadow"),
URL: "https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/shadow",
Requires: []*analysis.Analyzer{inspect.Analyzer},
Run: run,
}
Subdirectories
Name |
Synopsis |
.. |
cmd
|
|
shadow
|
The shadow command runs the shadow analyzer.
|