nilerr finds code which returns nil even though it checks that error is not nil.
func f() error {
	err := do()
	if err != nil {
		return nil // miss
	}
}nilerr also finds code which returns error even though it checks that error is nil.
func f() error {
	err := do()
	if err == nil {
		return err // miss
	}
}nilerr ignores code which has a miss with ignore comment.
func f() error {
	err := do()
	if err != nil {
		//lint:ignore nilerr reason
		return nil // ignore
	}
}$ go install github.com/gostaticanalysis/nilerr/cmd/nilerr@latest
$ nilerr ./...