diff options
Diffstat (limited to 'src/pkg/reflect/deepequal.go')
-rw-r--r-- | src/pkg/reflect/deepequal.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/pkg/reflect/deepequal.go b/src/pkg/reflect/deepequal.go index a483135b0..df5ec0a60 100644 --- a/src/pkg/reflect/deepequal.go +++ b/src/pkg/reflect/deepequal.go @@ -69,6 +69,9 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) (b bool } return true case Slice: + if v1.IsNil() != v2.IsNil() { + return false + } if v1.Len() != v2.Len() { return false } @@ -93,6 +96,9 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) (b bool } return true case Map: + if v1.IsNil() != v2.IsNil() { + return false + } if v1.Len() != v2.Len() { return false } @@ -104,7 +110,7 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) (b bool return true default: // Normal equality suffices - return v1.Interface() == v2.Interface() + return valueInterface(v1, false) == valueInterface(v2, false) } panic("Not reached") |