Просмотр исходного кода

Merge pull request #37567 from vdemeester/bump-mergo

Bump mergo to v0.3.6
Sebastiaan van Stijn 7 лет назад
Родитель
Сommit
9cf8feebbf
3 измененных файлов с 9 добавлено и 2 удалено
  1. 1 1
      vendor.conf
  2. 1 1
      vendor/github.com/imdario/mergo/README.md
  3. 7 0
      vendor/github.com/imdario/mergo/merge.go

+ 1 - 1
vendor.conf

@@ -22,7 +22,7 @@ gotest.tools v2.1.0
 github.com/google/go-cmp v0.2.0
 github.com/google/go-cmp v0.2.0
 
 
 github.com/RackSec/srslog 456df3a81436d29ba874f3590eeeee25d666f8a5
 github.com/RackSec/srslog 456df3a81436d29ba874f3590eeeee25d666f8a5
-github.com/imdario/mergo v0.3.5
+github.com/imdario/mergo v0.3.6
 golang.org/x/sync fd80eb99c8f653c847d294a001bdf2a3a6f768f5
 golang.org/x/sync fd80eb99c8f653c847d294a001bdf2a3a6f768f5
 
 
 # buildkit
 # buildkit

+ 1 - 1
vendor/github.com/imdario/mergo/README.md

@@ -27,7 +27,7 @@ It is ready for production use. [It is used in several projects by Docker, Googl
 
 
 ### Latest release
 ### Latest release
 
 
-[Release v0.3.4](https://github.com/imdario/mergo/releases/tag/v0.3.4).
+[Release v0.3.6](https://github.com/imdario/mergo/releases/tag/v0.3.6).
 
 
 ### Important note
 ### Important note
 
 

+ 7 - 0
vendor/github.com/imdario/mergo/merge.go

@@ -9,6 +9,7 @@
 package mergo
 package mergo
 
 
 import (
 import (
+	"fmt"
 	"reflect"
 	"reflect"
 )
 )
 
 
@@ -127,6 +128,9 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
 					if !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
 					if !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
 						dstSlice = srcSlice
 						dstSlice = srcSlice
 					} else if config.AppendSlice {
 					} else if config.AppendSlice {
+						if srcSlice.Type() != dstSlice.Type() {
+							return fmt.Errorf("cannot append two slice with different type (%s, %s)", srcSlice.Type(), dstSlice.Type())
+						}
 						dstSlice = reflect.AppendSlice(dstSlice, srcSlice)
 						dstSlice = reflect.AppendSlice(dstSlice, srcSlice)
 					}
 					}
 					dst.SetMapIndex(key, dstSlice)
 					dst.SetMapIndex(key, dstSlice)
@@ -150,6 +154,9 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
 		if !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
 		if !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
 			dst.Set(src)
 			dst.Set(src)
 		} else if config.AppendSlice {
 		} else if config.AppendSlice {
+			if src.Type() != dst.Type() {
+				return fmt.Errorf("cannot append two slice with different type (%s, %s)", src.Type(), dst.Type())
+			}
 			dst.Set(reflect.AppendSlice(dst, src))
 			dst.Set(reflect.AppendSlice(dst, src))
 		}
 		}
 	case reflect.Ptr:
 	case reflect.Ptr: