From 60f22627cd44b37c354a0075b227a900ed2aeac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dario=20Casta=C3=B1=C3=A9?= Date: Sat, 18 Jul 2020 01:36:09 +0200 Subject: [PATCH] Issue #123 fixed (again) --- issue104_test.go | 4 ---- merge.go | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/issue104_test.go b/issue104_test.go index dfbd3ff..cc405af 100644 --- a/issue104_test.go +++ b/issue104_test.go @@ -1,7 +1,6 @@ package mergo import ( - "fmt" "reflect" "testing" ) @@ -19,8 +18,6 @@ func StructToRecord(in interface{}) *Record { for i := 0; i < typ.NumField(); i++ { field := typ.Field(i) dbFieldName := field.Tag.Get("db") - - fmt.Printf("%d %v, tags: %v\n", i, field.Name, dbFieldName) if dbFieldName != "" { rec.Mapping[field.Name] = dbFieldName } @@ -41,7 +38,6 @@ func TestStructToRecord(t *testing.T) { } a := A{Name: "David", CIDR: "10.0.0.0/8"} rec := StructToRecord(a) - fmt.Printf("rec: %+v\n", rec) if len(rec.Mapping) < 2 { t.Fatalf("struct to record failed, no mapping, struct missing tags?, rec: %+v, a: %+v ", rec, a) } diff --git a/merge.go b/merge.go index b7fcf5e..2a2115e 100644 --- a/merge.go +++ b/merge.go @@ -119,6 +119,9 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co switch srcElement.Kind() { case reflect.Chan, reflect.Func, reflect.Map, reflect.Interface, reflect.Slice: if srcElement.IsNil() { + if overwrite { + dst.SetMapIndex(key, srcElement) + } continue } fallthrough