From: Cuong Manh Le Date: Sat, 27 Aug 2022 14:38:45 +0000 (+0700) Subject: reflect: simplify array value comparable check X-Git-Tag: go1.20rc1~1367 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7393049;p=gostls13.git reflect: simplify array value comparable check If array element is not interface, array or struct, we just need to check whether the array element type is comparable. Change-Id: I1ab94cfa17ae86feb6cd3fbdf878af5a776e7bec Reviewed-on: https://go-review.googlesource.com/c/go/+/426194 Reviewed-by: Cherry Mui Run-TryBot: Cuong Manh Le Auto-Submit: Cuong Manh Le Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot --- diff --git a/src/reflect/value.go b/src/reflect/value.go index 9c8b82c41e..061545bd4f 100644 --- a/src/reflect/value.go +++ b/src/reflect/value.go @@ -3264,10 +3264,6 @@ func (v Value) Comparable() bool { return true case Array: - if v.Type().Len() == 0 { - return v.Type().Comparable() - } - switch v.Type().Elem().Kind() { case Interface, Array, Struct: for i := 0; i < v.Type().Len(); i++ { @@ -3275,11 +3271,8 @@ func (v Value) Comparable() bool { return false } } - default: - return v.Index(0).Comparable() } - - return true + return v.Type().Comparable() case Func: return false