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.

Fixes #76961

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>
This commit is contained in:
Damien Neil
2025-12-22 16:35:42 -08:00
committed by Gopher Robot
parent b6b8b2fe6e
commit 1b3db48db7
2 changed files with 0 additions and 44 deletions

View File

@@ -27,16 +27,6 @@ func Join(errs ...error) error {
if n == 0 {
return nil
}
if n == 1 {
for _, err := range errs {
if _, ok := err.(interface {
Unwrap() []error
}); ok {
return err
}
}
}
e := &joinError{
errs: make([]error, 0, n),
}

View File

@@ -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...)
}
})
}
}