From: Russ Cox Date: Tue, 18 Oct 2016 15:01:54 +0000 (-0400) Subject: reflect: document DeepEqual(nil map, empty non-nil map) behavior X-Git-Tag: go1.8beta1~769 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4c1995f95b9786006c71537e34609e356efafb4b;p=gostls13.git reflect: document DeepEqual(nil map, empty non-nil map) behavior Fixes #16531. Change-Id: I41ec8123f2d3fbe063fd3b09a9366e69722793e5 Reviewed-on: https://go-review.googlesource.com/31355 Reviewed-by: Brad Fitzpatrick --- diff --git a/src/reflect/deepequal.go b/src/reflect/deepequal.go index 9770358ae7..d339768854 100644 --- a/src/reflect/deepequal.go +++ b/src/reflect/deepequal.go @@ -142,8 +142,9 @@ func deepValueEqual(v1, v2 Value, visited map[visit]bool, depth int) bool { // // Interface values are deeply equal if they hold deeply equal concrete values. // -// Map values are deeply equal if they are the same map object -// or if they have the same length and their corresponding keys +// Map values are deeply equal when all of the following are true: +// they are both nil or both non-nil, they have the same length, +// and either they are the same map object or their corresponding keys // (matched using Go equality) map to deeply equal values. // // Pointer values are deeply equal if they are equal using Go's == operator