package defers
import "golang.org/x/tools/go/analysis/passes/defers"
Package defers defines an Analyzer that checks for common mistakes in defer statements.
Analyzer defers
defers: report common mistakes in defer statements
The defers analyzer reports a diagnostic when a defer statement would result in a non-deferred call to time.Since, as experience has shown that this is nearly always a mistake.
For example:
start := time.Now() ... defer recordLatency(time.Since(start)) // error: call to time.Since is not deferred
The correct code is:
defer func() { recordLatency(time.Since(start)) }()
Index ¶
Variables ¶
var Analyzer = &analysis.Analyzer{ Name: "defers", Requires: []*analysis.Analyzer{inspect.Analyzer}, URL: "https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/defers", Doc: analysisutil.MustExtractDoc(doc, "defers"), Run: run, }
Analyzer is the defers analyzer.
Source Files ¶
defers.go doc.go
Directories ¶
Path | Synopsis |
---|---|
go/analysis/passes/defers/cmd | |
go/analysis/passes/defers/cmd/defers | The defers command runs the defers 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.