]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.25] Revert "errors: optimize errors.Join for single unwrappable...
authorDamien Neil <dneil@google.com>
Tue, 23 Dec 2025 00:35:42 +0000 (16:35 -0800)
committerJunyang Shao <shaojunyang@google.com>
Wed, 7 Jan 2026 18:12:19 +0000 (10:12 -0800)
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>
src/errors/join.go
src/errors/join_test.go

index dd50089c293f7ce5f516b07838d2988c4a58022f..349fc06ed9f75c3323a9d65c2e519713a9b33e7e 100644 (file)
@@ -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),
        }
index 439b372ca0371d1aa546db1e18709d6ec2b8e7e9..4828dc4d755fd678d0b3ca31f7fdebc5e1dcaeaf 100644 (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...)
-                       }
-               })
-       }
-}