diff options
| author | Tobias Klauser <tklauser@distanz.ch> | 2024-04-03 11:50:36 +0200 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-04-03 22:49:49 +0000 |
| commit | af43932c20d5b59cdffca45406754dbccbb46dfa (patch) | |
| tree | 968e7d230be3a65bb690d1252d4e0459ed4d24db | |
| parent | a4440e3d236dc2ca65851c39a51958cc1b3c03fb (diff) | |
| download | go-af43932c20d5b59cdffca45406754dbccbb46dfa.tar.xz | |
errors: return early for Is(nil, ...)
If err is nil it wouldn't match any given target error except for nil,
so we can return early to speed up cases where Is is used without a
preceding err != nil check.
Change-Id: Ib33cff50453fe070f06871ce8074694c81ab787b
Reviewed-on: https://go-review.googlesource.com/c/go/+/576015
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
| -rw-r--r-- | src/errors/wrap.go | 2 | ||||
| -rw-r--r-- | src/errors/wrap_test.go | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/errors/wrap.go b/src/errors/wrap.go index 88ee0a9281..57060517b5 100644 --- a/src/errors/wrap.go +++ b/src/errors/wrap.go @@ -42,7 +42,7 @@ func Unwrap(err error) error { // an example in the standard library. An Is method should only shallowly // compare err and the target and not call [Unwrap] on either. func Is(err, target error) bool { - if target == nil { + if err == nil || target == nil { return err == target } diff --git a/src/errors/wrap_test.go b/src/errors/wrap_test.go index 0a7bc5d16a..58ed95fd9a 100644 --- a/src/errors/wrap_test.go +++ b/src/errors/wrap_test.go @@ -30,6 +30,7 @@ func TestIs(t *testing.T) { match bool }{ {nil, nil, true}, + {nil, err1, false}, {err1, nil, false}, {err1, err1, true}, {erra, err1, true}, |
