32 lines
728 B
Go
32 lines
728 B
Go
//golangcitest:args -Eerrorlint
|
|
package testdata
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"log"
|
|
)
|
|
|
|
var errLintFoo = errors.New("foo")
|
|
|
|
type errLintBar struct{}
|
|
|
|
func (*errLintBar) Error() string {
|
|
return "bar"
|
|
}
|
|
|
|
func errorLintAll() {
|
|
err := func() error { return nil }()
|
|
if err == errLintFoo { // want "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error"
|
|
log.Println("errCompare")
|
|
}
|
|
|
|
err = errors.New("oops")
|
|
fmt.Errorf("error: %v", err) // want "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors"
|
|
|
|
switch err.(type) { // want "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors"
|
|
case *errLintBar:
|
|
log.Println("errLintBar")
|
|
}
|
|
}
|