Skip to content

Latest commit

 

History

History
54 lines (41 loc) · 1.03 KB

File metadata and controls

54 lines (41 loc) · 1.03 KB

noinlineerr

A Go linter that forbids inline error handling using if err := ...; err != nil.


Why?

Inline error handling in Go can hurt readability by hiding the actual function call behind error plumbing. We believe errors and functions deserve their own spotlight.

Instead of:

if err := doSomething(); err != nil {
    return err
}

Prefer the more explicit and readable:

err := doSomething()
if err != nil {
    return err
}

Install

go install github.com/AlwxSin/noinlineerr/cmd/noinlineerr@latest

Usage

As a standalone tool

noinlineerr ./...

⚠️ Note: The linter detects inline error assignments only when the error variable is explicitly typed or deducible. It doesn't handle dynamically typed interfaces (e.g., foo().Err() where Err() returns an error via an interface).


Development

Run tests:

go test ./...

Test data lives under testdata/src/...


Contributing

PRs are welcome. Let's make Go code cleaner, one err at a time.