func mergeFields()

in getdeps/main.go [86:104]


func mergeFields(dst reflect.Value, src reflect.Value) {
	for i := 0; i < dst.NumField(); i++ {
		sf, df := src.Field(i), dst.Field(i)
		if sf.IsZero() {
			continue
		}
		if sf.Kind() == reflect.Ptr {
			if sf.Elem().IsZero() {
				// Create a nil pointer of field's type.
				nilValue := reflect.New(sf.Type()).Elem()
				df.Set(nilValue)
			} else {
				df.Set(sf)
			}
		} else {
			df.Set(sf)
		}
	}
}