aboutsummaryrefslogtreecommitdiff
path: root/src/errors
diff options
context:
space:
mode:
authorVitaly Zdanevich <zdanevich.vitaly@ya.ru>2021-03-08 03:15:25 +0000
committerTobias Klauser <tobias.klauser@gmail.com>2021-03-13 17:07:07 +0000
commitfedb49487831e1168ebad7d313e23a8494bee6a2 (patch)
tree27405f60aa7039096be5611e0a696dbeefaecfdd /src/errors
parent289d34a465d46e5c5c07034f5d54afbfda06f5b9 (diff)
downloadgo-fedb49487831e1168ebad7d313e23a8494bee6a2.tar.gz
go-fedb49487831e1168ebad7d313e23a8494bee6a2.zip
errors/wrap: do not call Elem() twice
Change-Id: I2fe6037c45a0dfe25f946a92ff97b5e3fbd69bc0 GitHub-Last-Rev: 644d479a27c0eccfc0b37e1a560ca09e47b5a972 GitHub-Pull-Request: golang/go#44851 Reviewed-on: https://go-review.googlesource.com/c/go/+/299629 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Trust: Tobias Klauser <tobias.klauser@gmail.com>
Diffstat (limited to 'src/errors')
-rw-r--r--src/errors/wrap.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/errors/wrap.go b/src/errors/wrap.go
index 7928fe673e..4eb4f9ae37 100644
--- a/src/errors/wrap.go
+++ b/src/errors/wrap.go
@@ -83,10 +83,10 @@ func As(err error, target interface{}) bool {
if typ.Kind() != reflectlite.Ptr || val.IsNil() {
panic("errors: target must be a non-nil pointer")
}
- if e := typ.Elem(); e.Kind() != reflectlite.Interface && !e.Implements(errorType) {
+ targetType := typ.Elem()
+ if targetType.Kind() != reflectlite.Interface && !targetType.Implements(errorType) {
panic("errors: *target must be interface or implement error")
}
- targetType := typ.Elem()
for err != nil {
if reflectlite.TypeOf(err).AssignableTo(targetType) {
val.Elem().Set(reflectlite.ValueOf(err))