diff options
| author | Damien Neil <dneil@google.com> | 2025-12-22 16:35:42 -0800 |
|---|---|---|
| committer | Junyang Shao <shaojunyang@google.com> | 2026-01-07 10:12:19 -0800 |
| commit | ddcf27fc8c8af1be6304dbe772b76fcdd70d4099 (patch) | |
| tree | 29ee7143bd431f70c36bb82a4ac358702a2a514b | |
| parent | 14f50f6e3e336873be5bc8ca2bb323b55ba65b55 (diff) | |
| download | go-ddcf27fc8c8af1be6304dbe772b76fcdd70d4099.tar.xz | |
[release-branch.go1.25] Revert "errors: optimize errors.Join for single unwrappable errors"
This reverts CL 635115.
Reason for revert: The new behavior does not match the function documentation.
For #76961
Fixes #76973
Change-Id: If2450aa4efba28c7a12887a5b306c231a836e740
Reviewed-on: https://go-review.googlesource.com/c/go/+/731981
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
(cherry picked from commit 1b3db48db7afc3fe17440af28cdeac67a0d048f1)
Reviewed-on: https://go-review.googlesource.com/c/go/+/734520
Reviewed-by: Junyang Shao <shaojunyang@google.com>
| -rw-r--r-- | src/errors/join.go | 12 | ||||
| -rw-r--r-- | src/errors/join_test.go | 34 |
2 files changed, 0 insertions, 46 deletions
diff --git a/src/errors/join.go b/src/errors/join.go index dd50089c29..349fc06ed9 100644 --- a/src/errors/join.go +++ b/src/errors/join.go @@ -26,18 +26,6 @@ func Join(errs ...error) error { if n == 0 { return nil } - if n == 1 { - for _, err := range errs { - if err != nil { - if _, ok := err.(interface { - Unwrap() []error - }); ok { - return err - } - } - } - } - e := &joinError{ errs: make([]error, 0, n), } diff --git a/src/errors/join_test.go b/src/errors/join_test.go index 439b372ca0..4828dc4d75 100644 --- a/src/errors/join_test.go +++ b/src/errors/join_test.go @@ -70,37 +70,3 @@ func TestJoinErrorMethod(t *testing.T) { } } } - -func BenchmarkJoin(b *testing.B) { - for _, bb := range []struct { - name string - errs []error - }{ - { - name: "no error", - }, - { - name: "single non-nil error", - errs: []error{errors.New("err")}, - }, - { - name: "multiple errors", - errs: []error{errors.New("err"), errors.New("newerr"), errors.New("newerr2")}, - }, - { - name: "unwrappable single error", - errs: []error{errors.Join(errors.New("err"))}, - }, - { - name: "nil first error", - errs: []error{nil, errors.New("newerr")}, - }, - } { - b.Run(bb.name, func(b *testing.B) { - b.ReportAllocs() - for i := 0; i < b.N; i++ { - _ = errors.Join(bb.errs...) - } - }) - } -} |
