noinlineerr

package module
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2025 License: MIT Imports: 7 Imported by: 2

README

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.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAnalyzer added in v1.0.1

func NewAnalyzer() *analysis.Analyzer

Types

This section is empty.

Directories

Path Synopsis
cmd
noinlineerr command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL