package shadow
import "golang.org/x/tools/go/analysis/passes/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 }
Index ¶
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, }
Source Files ¶
doc.go shadow.go
Directories ¶
Path | Synopsis |
---|---|
go/analysis/passes/shadow/cmd | |
go/analysis/passes/shadow/cmd/shadow | The shadow command runs the shadow analyzer. |
- Version
- v0.30.0 (latest)
- Published
- Feb 10, 2025
- Platform
- linux/amd64
- Imports
- 8 packages
- Last checked
- 3 hours ago –
Tools for package owners.