coder/rules.go

27 lines
721 B
Go

package gorules
import (
"github.com/quasilyte/go-ruleguard/dsl"
)
// Use xerrors everywhere! It provides additional stacktrace info!
//nolint:unused,deadcode,varnamelen
func xerrors(m dsl.Matcher) {
m.Import("errors")
m.Import("fmt")
m.Import("golang.org/x/xerrors")
m.Match("fmt.Errorf($*args)").
Suggest("xerrors.New($args)").
Report("Use xerrors to provide additional stacktrace information!")
m.Match("fmt.Errorf($*args)").
Suggest("xerrors.Errorf($args)").
Report("Use xerrors to provide additional stacktrace information!")
m.Match("errors.New($msg)").
Where(m["msg"].Type.Is("string")).
Suggest("xerrors.New($msg)").
Report("Use xerrors to provide additional stacktrace information!")
}