Categorygithub.com/MakeNowJust/enumcase
modulepackage
0.0.0-20190823025603-574e2b6fa0e1
Repository: https://github.com/makenowjust/enumcase.git
Documentation: pkg.go.dev

# README

enumcase

enumcase checks every switch statement handles all const values of the type

Install

$ go get -u github.com/MakeNowJust/enumcase/cmd/enumcase

Usage

$ go vet -vettool=$(which enumcase) pkgname

Or

$ enumcase pkgname

Example

For example you have this type and consts:

type FileMode int

const (
    Read FileMode = iota
    Write
    Append
)

Then, enumcase reports a warning for such a switch because the case to Append is missing.

switch mode {
case Read:
    // ...
case Write:
    // ...
}
$ go vet -vettool=$(which enumcase) .
/.../main.go:10:9: missing case(s) to FileMode value(s): Append

Notice

enumcase reports many false-positives because this tool checks all switch statement whose tag type has const value. It is hard to distinguish whether the type is enum-like or not.

I don't recommend to use enumcase on CI or everyday code check. However, I recommend to use enumcase when a new const value is added. It may help you.

# Packages

No description provided by the author

# Functions

No description provided by the author

# Constants

No description provided by the author

# Variables

No description provided by the author