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 defer
defer: report common mistakes in defer statements
The defer 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: "defer", Requires: []*analysis.Analyzer{inspect.Analyzer}, Doc: analysisutil.MustExtractDoc(doc, "defer"), Run: run, }
Analyzer is the defer analyzer.
Source Files ¶
defer.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.11.1
- Published
- Jul 31, 2023
- Platform
- darwin/amd64
- Imports
- 8 packages
- Last checked
- 1 hour ago –
Tools for package owners.