54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
//golangcitest:args -Eerrorlint
|
|
//golangcitest:config_path testdata/configs/errorlint_comparison.yml
|
|
package testdata
|
|
|
|
import (
|
|
"errors"
|
|
"log"
|
|
)
|
|
|
|
var errCompare = errors.New("foo")
|
|
|
|
func errorLintDoThing() error {
|
|
return errCompare
|
|
}
|
|
|
|
func errorLintComparison() {
|
|
err := errorLintDoThing()
|
|
if errors.Is(err, errCompare) {
|
|
log.Println("errCompare")
|
|
}
|
|
if err == nil {
|
|
log.Println("nil")
|
|
}
|
|
if err != nil {
|
|
log.Println("nil")
|
|
}
|
|
if nil == err {
|
|
log.Println("nil")
|
|
}
|
|
if nil != err {
|
|
log.Println("nil")
|
|
}
|
|
if err == errCompare { // want "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error"
|
|
log.Println("errCompare")
|
|
}
|
|
if err != errCompare { // want "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error"
|
|
log.Println("not errCompare")
|
|
}
|
|
if errCompare == err { // want "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error"
|
|
log.Println("errCompare")
|
|
}
|
|
if errCompare != err { // want "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error"
|
|
log.Println("not errCompare")
|
|
}
|
|
switch err { // want "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors"
|
|
case errCompare:
|
|
log.Println("errCompare")
|
|
}
|
|
switch errorLintDoThing() { // want "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors"
|
|
case errCompare:
|
|
log.Println("errCompare")
|
|
}
|
|
}
|