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

PathSynopsis
go/analysis/passes/defers/cmd
go/analysis/passes/defers/cmd/defersThe defers command runs the defers analyzer.
Version
v0.11.1
Published
Jul 31, 2023
Platform
windows/amd64
Imports
8 packages
Last checked
1 hour ago

Tools for package owners.