File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -283,8 +283,13 @@ func Unrecoverable(err error) error {
283283
284284// IsRecoverable checks if error is an instance of `unrecoverableError`
285285func IsRecoverable (err error ) bool {
286+ return ! errors .Is (err , unrecoverableError {})
287+ }
288+
289+ // Adds support for errors.Is usage on unrecoverableError
290+ func (unrecoverableError ) Is (err error ) bool {
286291 _ , isUnrecoverable := err .(unrecoverableError )
287- return ! isUnrecoverable
292+ return isUnrecoverable
288293}
289294
290295func unpackUnrecoverable (err error ) error {
Original file line number Diff line number Diff line change @@ -503,3 +503,14 @@ func TestUnwrap(t *testing.T) {
503503 assert .Error (t , err )
504504 assert .Equal (t , testError , errors .Unwrap (err ))
505505}
506+
507+ func TestIsRecoverable (t * testing.T ) {
508+ err := errors .New ("err" )
509+ assert .True (t , IsRecoverable (err ))
510+
511+ err = Unrecoverable (err )
512+ assert .False (t , IsRecoverable (err ))
513+
514+ err = fmt .Errorf ("wrapping: %w" , err )
515+ assert .False (t , IsRecoverable (err ))
516+ }
You can’t perform that action at this time.
0 commit comments