From 6b2bcf5eff81a02d08e05d483bf90f4a14b1f252 Mon Sep 17 00:00:00 2001 From: Ivan Fraixedes Date: Fri, 8 Jul 2016 13:14:46 +0000 Subject: [PATCH 1/2] Add array type fiel on test struct to see panic --- messagediff_test.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/messagediff_test.go b/messagediff_test.go index 6d0a85a..7f0c2cc 100644 --- a/messagediff_test.go +++ b/messagediff_test.go @@ -8,6 +8,7 @@ import ( type testStruct struct { A, b int C []int + D [3]int } type RecursiveStruct struct { @@ -90,8 +91,8 @@ func TestPrettyDiff(t *testing.T) { false, }, { - testStruct{1, 2, []int{1}}, - testStruct{1, 3, []int{1, 2}}, + testStruct{1, 2, []int{1}, [3]int{4, 5, 6}}, + testStruct{1, 3, []int{1, 2}, [3]int{4, 5, 6}}, "added: .C[1] = 2\nmodified: .b = 3\n", false, }, From 77ce41375b8b34c4dd3b5261e49b53eebca0b20c Mon Sep 17 00:00:00 2001 From: Ivan Fraixedes Date: Fri, 8 Jul 2016 13:15:24 +0000 Subject: [PATCH 2/2] Fix implementation to pass tests --- messagediff.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/messagediff.go b/messagediff.go index 15bb858..06340bd 100644 --- a/messagediff.go +++ b/messagediff.go @@ -91,7 +91,7 @@ func (d *Diff) diff(aVal, bVal reflect.Value, path Path) bool { equal := true switch kind { - case reflect.Array, reflect.Map, reflect.Ptr, reflect.Func, reflect.Chan, reflect.Slice: + case reflect.Map, reflect.Ptr, reflect.Func, reflect.Chan, reflect.Slice: if aVal.IsNil() && bVal.IsNil() { return true }