summaryrefslogtreecommitdiff
path: root/src/pkg/reflect/deepequal.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/reflect/deepequal.go')
-rw-r--r--src/pkg/reflect/deepequal.go8
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")