aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Djarvur/go-err113/README.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Djarvur/go-err113/README.adoc')
-rw-r--r--vendor/github.com/Djarvur/go-err113/README.adoc73
1 files changed, 73 insertions, 0 deletions
diff --git a/vendor/github.com/Djarvur/go-err113/README.adoc b/vendor/github.com/Djarvur/go-err113/README.adoc
new file mode 100644
index 000000000..b4c1f4375
--- /dev/null
+++ b/vendor/github.com/Djarvur/go-err113/README.adoc
@@ -0,0 +1,73 @@
+= err113 image:https://godoc.org/github.com/Djarvur/go-err113?status.svg["GoDoc",link="http://godoc.org/github.com/Djarvur/go-err113"] image:https://travis-ci.org/Djarvur/go-err113.svg["Build Status",link="https://travis-ci.org/Djarvur/go-err113"] image:https://coveralls.io/repos/Djarvur/go-err113/badge.svg?branch=master&service=github["Coverage Status",link="https://coveralls.io/github/Djarvur/go-err113?branch=master"]
+Daniel Podolsky
+:toc:
+
+Golang linter to check the errors handling expressions
+
+== Details
+
+Starting from Go 1.13 the standard `error` type behaviour was changed: one `error` could be derived from another with `fmt.Errorf()` method using `%w` format specifier.
+
+So the errors hierarchy could be built for flexible and responsible errors processing.
+
+And to make this possible at least two simple rules should be followed:
+
+1. `error` values should not be compared directly but with `errors.Is()` method.
+1. `error` should not be created dynamically from scratch but by the wrapping the static (package-level) error.
+
+This linter is checking the code for these 2 rules compliance.
+
+=== Reports
+
+So, `err113` reports every `==` and `!=` comparison for exact `error` type variables except comparison to `nil` and `io.EOF`.
+
+Also, any call of `errors.New()` and `fmt.Errorf()` methods are reported except the calls used to initialise package-level variables and the `fmt.Errorf()` calls wrapping the other errors.
+
+Note: non-standard packages, like `github.com/pkg/errors` are ignored complitely.
+
+== Install
+
+```
+go get -u github.com/Djarvur/go-err113/cmd/err113
+```
+
+== Usage
+
+Defined by link:https://pkg.go.dev/golang.org/x/tools/go/analysis/singlechecker[singlechecker] package.
+
+```
+err113: checks the error handling rules according to the Go 1.13 new error type
+
+Usage: err113 [-flag] [package]
+
+
+Flags:
+ -V print version and exit
+ -all
+ no effect (deprecated)
+ -c int
+ display offending line with this many lines of context (default -1)
+ -cpuprofile string
+ write CPU profile to this file
+ -debug string
+ debug flags, any subset of "fpstv"
+ -fix
+ apply all suggested fixes
+ -flags
+ print analyzer flags in JSON
+ -json
+ emit JSON output
+ -memprofile string
+ write memory profile to this file
+ -source
+ no effect (deprecated)
+ -tags string
+ no effect (deprecated)
+ -trace string
+ write trace log to this file
+ -v no effect (deprecated)
+```
+
+== Thanks
+
+To link:https://github.com/quasilyte[Iskander (Alex) Sharipov] for the really useful advices.