aboutsummaryrefslogtreecommitdiff
path: root/src/errors
diff options
context:
space:
mode:
authorDamien Neil <dneil@google.com>2025-12-22 16:35:42 -0800
committerJunyang Shao <shaojunyang@google.com>2026-01-07 10:12:19 -0800
commitddcf27fc8c8af1be6304dbe772b76fcdd70d4099 (patch)
tree29ee7143bd431f70c36bb82a4ac358702a2a514b /src/errors
parent14f50f6e3e336873be5bc8ca2bb323b55ba65b55 (diff)
downloadgo-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>
Diffstat (limited to 'src/errors')
-rw-r--r--src/errors/join.go12
-rw-r--r--src/errors/join_test.go34
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...)
- }
- })
- }
-}