diff --git a/copier.go b/copier.go index 5fba6b8..8543292 100644 --- a/copier.go +++ b/copier.go @@ -232,7 +232,8 @@ func copier(toValue interface{}, fromValue interface{}, opt Option) (err error) } // Get tag options - flgs, err := getFlags(dest, source, toType, fromType) + var flgs flags + flgs, err = getFlags(dest, source, toType, fromType) if err != nil { return err } @@ -247,7 +248,7 @@ func copier(toValue interface{}, fromValue interface{}, opt Option) (err error) name := field.Name // Get bit flags for field - fieldFlags, _ := flgs.BitFlags[name] + fieldFlags := flgs.BitFlags[name] // Check if we should ignore copying if (fieldFlags & tagIgnore) != 0 { diff --git a/copier_test.go b/copier_test.go index f6d68a4..2c0fdf5 100644 --- a/copier_test.go +++ b/copier_test.go @@ -1203,7 +1203,7 @@ func TestCopyMapOfInt(t *testing.T) { func TestCopyMapOfSliceValue(t *testing.T) { // case1: map's value is a simple slice key, value := 2, 3 - src := map[int][]int{key: []int{value} } + src := map[int][]int{key: []int{value}} dst1 := map[int][]int{} var dst2 map[int][]int err := copier.Copy(&dst1, src) @@ -1240,10 +1240,10 @@ func TestCopyMapOfSliceValue(t *testing.T) { // case2: map's value is a slice whose element is map key1, key2 := 2, 3 value = 4 - s := map[int][]map[int]int{key1: []map[int]int{ {key2: value} } } - d1 := map[int][]map[int]int{key1: []map[int]int{ {key1: key2 } } } - d2 := map[int][]map[int]int{key1: []map[int]int{ } } - d3 := map[int][]map[int]int{key1: nil } + s := map[int][]map[int]int{key1: []map[int]int{{key2: value}}} + d1 := map[int][]map[int]int{key1: []map[int]int{{key1: key2}}} + d2 := map[int][]map[int]int{key1: []map[int]int{}} + d3 := map[int][]map[int]int{key1: nil} d4 := map[int][]map[int]int{} d5 := map[int][]map[int]int(nil) ms := []map[int][]map[int]int{d1, d2, d3, d4, d5} @@ -1267,7 +1267,7 @@ func TestCopyMapOfSliceValue(t *testing.T) { for k, v := range m { if k != key2 || v != value { t.Errorf("Map's slice value should be copied recursively") - } + } } } } @@ -1276,7 +1276,7 @@ func TestCopyMapOfSliceValue(t *testing.T) { func TestCopyMapOfPtrValue(t *testing.T) { intV := 3 intv := intV - src := map[int]*int{2: &intv } + src := map[int]*int{2: &intv} dst1 := map[int]*int{} var dst2 map[int]*int err := copier.Copy(&dst1, src) @@ -1295,7 +1295,7 @@ func TestCopyMapOfPtrValue(t *testing.T) { } v3, ok := dst2[k] - if !ok || v3 == nil ||*v3 != *v1 || *v3 != intV { + if !ok || v3 == nil || *v3 != *v1 || *v3 != intV { t.Errorf("Map should be copied") } } @@ -1520,7 +1520,6 @@ func TestDeepCopyTime(t *testing.T) { } } - func TestNestedPrivateData(t *testing.T) { type hasPrivate struct { data int @@ -1558,7 +1557,6 @@ func TestNestedPrivateData(t *testing.T) { } } - func TestDeepMapCopyTime(t *testing.T) { t1 := time.Now() t2 := t1.Add(time.Second) @@ -1611,7 +1609,7 @@ func TestDeepCopySimpleTime(t *testing.T) { } } -type TimeWrapper struct{ +type TimeWrapper struct { time.Time }