From 739304978086143a5d8c3b9bfa4f9f25aef23e90 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Sat, 27 Aug 2022 21:38:45 +0700 Subject: [PATCH] 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 --- src/reflect/value.go | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) 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 -- 2.48.1